<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <link rel="canonical" href="https://blog.csdn.net/wankunde/article/details/90269042"/>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta name="renderer" content="webkit"/>
    <meta name="force-rendering" content="webkit"/>
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <meta name="report" content='{"pid":"blog"}'>
    <meta name="referrer" content="always">
    <meta http-equiv="Cache-Control" content="no-siteapp" /><link rel="alternate" media="handheld" href="#" />
    <meta name="shenma-site-verification" content="5a59773ab8077d4a62bf469ab966a63b_1497598848">
        <meta name="csdn-baidu-search"  content='{"autorun":true,"install":true,"keyword":"ORC文件存储格式和数据写入过程_大数据_小万万的博客-CSDN博客"}'>
    
    <link href="https://csdnimg.cn/public/favicon.ico" rel="SHORTCUT ICON">
    <title>ORC文件存储格式和数据写入过程_大数据_小万万的博客-CSDN博客</title>
    <meta name="description" content="文章目录ORC 文件格式，配置参数及相关概念ORC 文件格式UML类图OrcFile writer 创建OrcFile Writer 配置参数相关概念动态数组 DynamicIntArray 和 DynamicByteArray初始化chunk 扩容OrcFile writer的 write()方法 写数据WriterImpl addRow程序入口StringTreeWriter : void w...大数据">
    <script src='//g.csdnimg.cn/tingyun/1.8.3/blog.js' type='text/javascript'></script>
        
                    <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/new_css/detail_enter-4a90768633.min.css">
                            <script type="application/ld+json">{"@context":"https:\/\/ziyuan.baidu.com\/contexts\/cambrian.jsonld","@id":"https:\/\/blog.csdn.net\/wankunde\/java\/article\/details\/90269042","appid":1638831770136827,"title":"ORC\u6587\u4ef6\u5b58\u50a8\u683c\u5f0f\u548c\u6570\u636e\u5199\u5165\u8fc7\u7a0b_\u5927\u6570\u636e_\u5c0f\u4e07\u4e07\u7684\u535a\u5ba2-CSDN\u535a\u5ba2","pubDate":"2019-05-16T18:05:54","upDate":"2019-05-16T18:05:54"}</script>
    
            <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/themes_skin/skin3-template/skin3-template-3faf0f2897.min.css">
    
<!--    自定义皮肤样式-->
    
    <script type="text/javascript">
        var username = "wankunde";
        var blog_address = "https://blog.csdn.net/wankunde";
        var static_host = "https://csdnimg.cn/release/phoenix/";
        var currentUserName = "";
        var isOwner = false;
        var loginUrl = "http://passport.csdn.net/account/login?from=https://blog.csdn.net/wankunde/java/article/details/90269042"
        var blogUrl = "https://blog.csdn.net/";

        var curSkin = "skin3-template";
        // 收藏所需数据
        var articleTitle = "ORC文件存储格式和数据写入过程";
        var articleDesc = "文章目录ORC 文件格式，配置参数及相关概念ORC 文件格式UML类图OrcFile writer 创建OrcFile Writer 配置参数相关概念动态数组 DynamicIntArray 和 DynamicByteArray初始化chunk 扩容OrcFile writer的 write()方法 写数据WriterImpl addRow程序入口StringTreeWriter : void w...大数据";

        var articleTitles = "ORC文件存储格式和数据写入过程_大数据_小万万的博客-CSDN博客";
        
        var nickName = "wankunde";
        var isCorporate = false;
        var subDomainBlogUrl = "https://blog.csdn.net/"
        var digg_base_url = "https://blog.csdn.net/wankunde";
        var articleDetailUrl = "https://blog.csdn.net/wankunde/article/details/90269042";
        var isShowThird = "1"
        var skinStatus = "White"
        var canRead = true;
        
        var sideToolbarVersion = 2.2;
    </script>
    <script src="https://csdnimg.cn/public/common/libs/jquery/jquery-1.9.1.min.js" type="text/javascript"></script>
    <!--js引用-->
            <script src="//g.csdnimg.cn/??fixed-sidebar/1.1.6/fixed-sidebar.js,report/1.5.0/report.js" type="text/javascript"></script>
    <link rel="stylesheet" href="https://csdnimg.cn/public/sandalstrap/1.4/css/sandalstrap.min.css">
    <style>
        .MathJax, .MathJax_Message, .MathJax_Preview{
            display: none
        }
    </style>
</head>
<body class="nodata " > 
    <link rel="stylesheet" href="https://csdnimg.cn/public/common/toolbar/content_toolbar_css/content_toolbar.css">
    <script id="toolbar-tpl-scriptId" src="https://csdnimg.cn/public/common/toolbar/js/content_toolbar.js" type="text/javascript" domain="https://blog.csdn.net/"></script>
    <script>
    (function(){
        var bp = document.createElement('script');
        var curProtocol = window.location.protocol.split(':')[0];
        if (curProtocol === 'https') {
            bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
        }
        else {
            bp.src = 'http://push.zhanzhang.baidu.com/push.js';
        }
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(bp, s);
    })();
</script>
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/new_css/blog_code-c3a0c33d5c.css">
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/vendor/pagination/paging-e040f0c7c8.css">

<script type="text/javascript">
	var NEWS_FEED = function(){}
</script>

<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/new_css/chart-3456820cac.css" />
<div class="main_father clearfix d-flex justify-content-center" style="height:100%;"> 
    <div class="container clearfix" id="mainBox">
        <aside class="blog_container_aside">
	<!--主页引入-->

    <div id="asideProfile" class="aside-box">
    <div class="profile-intro d-flex">
        <div class="avatar-box d-flex justify-content-center flex-column">
            <a href="https://blog.csdn.net/wankunde"  data-report-click='{"mod":"popu_379","dest":"https://blog.csdn.net/wankunde","ab":"new"}'>
                <img src="https://profile.csdnimg.cn/E/3/F/3_wankunde" class="avatar_pic" username='wankunde'>
            </a>
        </div>
        <div class="user-info d-flex flex-column profile-intro-name-box">
            <div>
                                <a href="https://blog.csdn.net/wankunde" class="" id="uid" title='wankunde' data-report-click='{"mod":"popu_379","dest":"https://blog.csdn.net/wankunde","ab":"new"}' >
                    <span class="name " username='wankunde'>
                        wankunde                    </span>
                </a>
                <span></span>
                <span class="flag expert-blog"><span class="bubble">CSDN认证博客专家</span></span>
                <span class="flag company-blog"><span class="bubble">CSDN认证企业博客</span></span>
            </div>
            <div class="profile-intro-name-boxFooter">
                <span class="personal-home-page">码龄11年</span>
            </div>
        </div>
    </div>
    <div class="data-info d-flex item-tiling">
                <dl class="text-center" title="229">
                            <dt><a href="https://blog.csdn.net/wankunde" data-report-query="t=1"><span class="count">229</span></a></dt>
                <dd><a href="https://blog.csdn.net/wankunde" data-report-query="t=1">原创</a></dd>
                    </dl>
        <dl class="text-center" id="fanBox" title="47">
            <dt><span class="count" id="fan">47</span></dt>
            <dd>粉丝</dd>
        </dl>
        <dl class="text-center" title="20">
            <dt><span class="count">20</span></dt>
            <dd>获赞</dd>
        </dl>
        <dl class="text-center" title="22">
            <dt><span class="count">22</span></dt>
            <dd>评论</dd>
        </dl>
        <dl class="text-center" style="min-width:58px" title="295803">  
            <dt><span class="count">29万+</span></dt>
            <dd>访问</dd>
        </dl>
    </div>
    <div class="item-rank"></div>
    <div class="data-info d-flex item-tiling">
        <dl class="text-center" title="3073">
            <dt><span class="count">3073</span></dt>
            <dd>积分</dd>
        </dl>
        <dl class="text-center" title="25">
            <dt><span class="count">25</span></dt>
            <dd>收藏</dd>
        </dl>
        <dl class="text-center" title="9701">
            <dt><span class="count">9701</span></dt>
            <dd><a href="https://blog.csdn.net/rank/writing_rank" target="_blank">周排名</a></dd>
        </dl>
        <dl class="text-center" title="24236">
            <dt><span class="count">2万+</span></dt>
            <dd><a href="https://blog.csdn.net/rank/writing_rank_total" target="_blank">总排名</a></dd>
        </dl>
        <dl class="text-center" title="5级,点击查看等级说明">
            <dt><a href="https://blog.csdn.net/home/help.html#level"  target="_blank">
            <img class="level" src="https://csdnimg.cn/identity/blog5.png"/>            </a>
            </dt>
            <dd>等级</dd>
        </dl>
    </div>
    <div class="aside-box-footer">
                    <div class="badge-box d-flex">
                <div class="badge d-flex">
                                                                                                        <div class="icon-badge" title="GitHub">
                                    <div class="mouse-box">
                                        <img src="https://csdnimg.cn/medal/github@240.png" alt="">
                                        <div class="icon-arrow"></div>
                                    </div>
                                    <div class="grade-detail-box">
                                        <div class="pos-box">
                                            <div class="left-box d-flex justify-content-center align-items-center flex-column">
                                                <img src="https://csdnimg.cn/medal/github@240.png" alt="">
                                            </div>
                                            <div class="right-box">
                                                <div class="title">GitHub</div>
                                                <div class="desc">绑定GitHub第三方账户获取</div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                                                                                                <div class="icon-badge" title="持之以恒">
                                    <div class="mouse-box">
                                        <img src="https://csdnimg.cn/medal/chizhiyiheng@240.png" alt="">
                                        <div class="icon-arrow"></div>
                                    </div>
                                    <div class="grade-detail-box">
                                        <div class="pos-box">
                                            <div class="left-box d-flex justify-content-center align-items-center flex-column">
                                                <img src="https://csdnimg.cn/medal/chizhiyiheng@240.png" alt="">
                                            </div>
                                            <div class="right-box">
                                                <div class="title">持之以恒</div>
                                                <div class="desc">授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里，不积小流无以成江海，程序人生的精彩需要坚持不懈地积累！</div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                                                                                                <div class="icon-badge" title="1024勋章">
                                    <div class="mouse-box">
                                        <img src="https://csdnimg.cn/medal/1024@240.png" alt="">
                                        <div class="icon-arrow"></div>
                                    </div>
                                    <div class="grade-detail-box">
                                        <div class="pos-box">
                                            <div class="left-box d-flex justify-content-center align-items-center flex-column">
                                                <img src="https://csdnimg.cn/medal/1024@240.png" alt="">
                                            </div>
                                            <div class="right-box">
                                                <div class="title">1024勋章</div>
                                                <div class="desc">#1024程序员节#活动勋章，当日发布原创博客即可获得</div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                                                                                                <div class="icon-badge" title="勤写标兵Lv2">
                                    <div class="mouse-box">
                                        <img src="https://csdnimg.cn/medal/qixiebiaobing2@240.png" alt="">
                                        <div class="icon-arrow"></div>
                                    </div>
                                    <div class="grade-detail-box">
                                        <div class="pos-box">
                                            <div class="left-box d-flex justify-content-center align-items-center flex-column">
                                                <img src="https://csdnimg.cn/medal/qixiebiaobing2@240.png" alt="">
                                            </div>
                                            <div class="right-box">
                                                <div class="title">勤写标兵Lv2</div>
                                                <div class="desc">授予每个自然周发布4篇到6篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。</div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                                                                        </div>
                <script>
                    (function($) {
                        setTimeout(function() {
                            $('div.icon-badge.show-moment').removeClass('show-moment');
                        }, 5000);
                    })(window.jQuery)
                </script>
            </div>
                
    </div>
        <div class="profile-intro-name-boxOpration">
        <div class='opt-letter-watch-box'>
            <a class="bt-button personal-letter" href="https://me.csdn.net/wankunde" target="_blank" rel="noopener">TA的主页</a>
        </div>
        <div class='opt-letter-watch-box'>
            <a class="bt-button personal-letter" href=https://im.csdn.net/im/main.html?userName=wankunde target="_blank" rel="noopener">私信</a>
        </div>
        <div class="opt-letter-watch-box">
                            <a class="personal-watch bt-button" id="btnAttent" data-report-click='{"mod":"popu_379","ab":"new","extend1":"个人主页未关注"}'>关注</a>
                    </div>
    </div>
    </div>
<script>
    function watchBtnChange(flag, username) {
        $('span.blog-expert-button-follow').each(function(index) {
            if (flag) {
                if ($(this).attr("data-name") == username) {
                    $(this).html('<span class="hover-hide">已关注</span><span class="hover-show">取消</span>').removeClass('btn-red-follow').addClass('btn-gray-follow attented');
                }
            } else {
                if ($(this).attr("data-name") == username) {
                    $(this).html("关注").addClass('btn-red-follow').removeClass('btn-gray-follow attented');
                }
            }
        })
        if (username == $('p.csdn-tracking-statistics').attr("username")) {
            if (flag) {
                $('#btnAttent').addClass("attented").text("已关注").removeClass('btn-red-hollow').addClass('btn-gray-hollow');
                changeFans(1)
            } else {
                $('#btnAttent').text("关注").addClass('btn-red-hollow').removeClass('btn-gray-hollow attented');
                changeFans(-1)
            }
        }

    }

    function changeFans(num) {
        if ($('#fan').text().indexOf('+') < 0) {
            $('#fan').text(parseInt($('#fan').text()) + num);
        } else {
            $('#fanBox').attr('title', parseInt($('#fanBox').attr('title')) + num);
        }
    }
    window.csdn = window.csdn ? window.csdn : {};
    window.csdn.watchBtnChange = watchBtnChange;
</script><div class="csdn-tracking-statistics mb8 box-shadow" data-pid="blog" style="height:250px;">
    <div class="aside-content text-center" id="cpro_u2734133">
        <div id="kp_box_56" data-pid="56"><script src='https://securepubads.g.doubleclick.net/tag/js/gpt.js'>
  googletag.pubads().definePassback('/162717810/CA-MarketingChoiceMedia/300x250', [300, 250]).display();
</script><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?p=56&a=2230&c=0&k=&d=1&t=3&u=8940c5dfec47456eb21b41e4e2d74c05"></div>    </div>
</div>
<div id="asideNewArticle" class="aside-box">
    <h3 class="aside-title">最新文章</h3>
    <div class="aside-content">
        <ul class="inf_list clearfix">
                        <li class="clearfix">
                <a data-report-click='{"mod":"popu_382","dest":"https://blog.csdn.net/wankunde/article/details/106041062","ab":"new"}' href="https://blog.csdn.net/wankunde/article/details/106041062" target="_blank" >
                                        一个Spark程序内存溢出问题排查和处理Case                </a>
            </li>
                        <li class="clearfix">
                <a data-report-click='{"mod":"popu_382","dest":"https://blog.csdn.net/wankunde/article/details/104646000","ab":"new"}' href="https://blog.csdn.net/wankunde/article/details/104646000" target="_blank" >
                                        实现自定义Spark优化规则                </a>
            </li>
                        <li class="clearfix">
                <a data-report-click='{"mod":"popu_382","dest":"https://blog.csdn.net/wankunde/article/details/104645786","ab":"new"}' href="https://blog.csdn.net/wankunde/article/details/104645786" target="_blank" >
                                        Spark 本地程序启动缓慢问题排查                </a>
            </li>
                        <li class="clearfix">
                <a data-report-click='{"mod":"popu_382","dest":"https://blog.csdn.net/wankunde/article/details/103926820","ab":"new"}' href="https://blog.csdn.net/wankunde/article/details/103926820" target="_blank" >
                                        Spark RPC                </a>
            </li>
                        <li class="clearfix">
                <a data-report-click='{"mod":"popu_382","dest":"https://blog.csdn.net/wankunde/article/details/103623897","ab":"new"}' href="https://blog.csdn.net/wankunde/article/details/103623897" target="_blank" >
                                        Spark Analyze收集stats信息实现和CBO stats信息estimate                </a>
            </li>
                    </ul>
    </div>
</div>
    <div id="asideCategory" class="aside-box flexible-box"
         style="">
    <h3 class="aside-title">分类专栏</h3>
    <div class="aside-content">
        <ul>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2750961.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2750961.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_2750961.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140053667.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">spark</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">35篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2751099.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2751099.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_2751099.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140145169.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">hadoop</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">35篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2759537.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2759537.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_2759537.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918135101160.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">yarn</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">8篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2764569.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2764569.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_2764569.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151124774.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">hbase</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2852639.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2852639.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_2852639.html">
                                                    <img src="https://img-blog.csdnimg.cn/2019091813595558.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">算法题</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">23篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_3129795.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_3129795.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_3129795.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140213434.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">hive</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">10篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_3213349.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_3213349.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_3213349.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151132530.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">mq</span>
                                                    </span>
                        <!--####是否付费-->
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_3227793.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_3227793.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_3227793.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140158853.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">mysql</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">2篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_5583811.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_5583811.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_5583811.html">
                                                    <img src="https://img-blog.csdnimg.cn/2019091813595558.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">personal</span>
                                                    </span>
                        <!--####是否付费-->
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_5597891.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_5597891.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_5597891.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151132530.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">临时需求</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_5784467.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_5784467.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_5784467.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151117521.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">software</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">4篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_6059715.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_6059715.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_6059715.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151053287.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">maintain</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">11篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_6414083.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_6414083.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_6414083.html">
                                                    <img src="https://img-blog.csdnimg.cn/2019092715111047.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">～房子～</span>
                                                    </span>
                        <!--####是否付费-->
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_6502403.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_6502403.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_6502403.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151101105.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">scala</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">3篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_6507468.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_6507468.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_6507468.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140158853.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">java</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">8篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_7039708.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_7039708.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_7039708.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140037908.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">oracle-11g</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_7166428.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_7166428.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_7166428.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140053667.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">tez</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_7307639.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_7307639.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_7307639.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151026427.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">impala</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_7364569.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_7364569.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_7364569.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140145169.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">elasticsearch</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">2篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8284669.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8284669.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8284669.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140213434.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">IDE工具使用</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">8篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8285316.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8285316.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8285316.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140053667.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">HTML</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">3篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8290432.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8290432.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8290432.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140037908.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">人生意义转载</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">5篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8295387.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8295387.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8295387.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151026427.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">JDK类学习</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">18篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8295679.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8295679.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8295679.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151026427.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">工作日志</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">6篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8300029.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8300029.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8300029.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151043371.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">J2EE</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">7篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8300377.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8300377.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8300377.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140053667.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">Oracle</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">9篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8307214.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8307214.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8307214.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140158853.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">YUI学习</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">2篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8315320.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8315320.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8315320.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151132530.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">Linux</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">3篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8316277.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8316277.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8316277.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151132530.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">Struts1</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">2篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8316580.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8316580.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8316580.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151053287.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">刨削</span>
                                                    </span>
                        <!--####是否付费-->
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8320120.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8320120.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8320120.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190927151101105.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">Jquery</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8320212.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8320212.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8320212.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140037908.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">JBPM</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">3篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8320356.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8320356.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8320356.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918135101160.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">JSP学习</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8372412.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8372412.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8372412.html">
                                                    <img src="https://img-blog.csdnimg.cn/2019092715111047.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">solr</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8372587.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8372587.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8372587.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140012416.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">lunuce</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8373113.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8373113.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8373113.html">
                                                    <img src="https://img-blog.csdnimg.cn/2019091813595558.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">OCR 识别文字 Java</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8381674.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8381674.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8381674.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140053667.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">JDK类学习 数据结构</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8382631.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8382631.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8382631.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140012416.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">每日英语</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8413671.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8413671.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8413671.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140213434.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">ssh</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8421543.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8421543.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8421543.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140129601.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">ruby</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8423348.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8423348.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8423348.html">
                                                    <img src="https://img-blog.csdnimg.cn/2019091813595558.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">storm 序列化</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">1篇</span>
                                            </a>
                </li>
                            <li class="">
                                        <a class="clearfix" 
                                                    data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8457723.html","ab":"new"}'
                            data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8457723.html","ab":"new"}'
                                               href="https://blog.csdn.net/wankunde/category_8457723.html">
                                                    <img src="https://img-blog.csdnimg.cn/20190918140145169.png" alt="">
                                                <!--####是否付费-->
                        <span class="title oneline"><span class="text">代码片段</span>
                                                    </span>
                        <!--####是否付费-->
                                                    <span class="count float-right">3篇</span>
                                            </a>
                </li>
                    </ul>
    </div>
        <p class="text-center">
        <a class="flexible-btn" data-fbox="aside-archive"><img class="look-more" src="https://csdnimg.cn/release/phoenix/template/new_img/arrowDownWhite.png" alt=""></a>
    </p>
    </div>
<div id="asideArchive" class="aside-box">
    <h3 class="aside-title">归档</h3>
    <div class="aside-content">
        <div class="archive-box">
                        <div class="archive-title">2020</div>
            <div class="archive-content">
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2020/05" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">5月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2020/03" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">3月</span>
                        <span class="count">2篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2020/01" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">1月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                            </div>
                        <div class="archive-title">2019</div>
            <div class="archive-content">
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2019/12" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">12月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2019/10" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">10月</span>
                        <span class="count">4篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2019/09" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">9月</span>
                        <span class="count">3篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2019/08" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">8月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2019/07" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">7月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2019/06" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">6月</span>
                        <span class="count">4篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2019/05" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">5月</span>
                        <span class="count">10篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2019/04" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">4月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2019/03" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">3月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2019/02" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">2月</span>
                        <span class="count">3篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2019/01" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">1月</span>
                        <span class="count">2篇</span>
                        </a>
                    </div>
                            </div>
                        <div class="archive-title">2018</div>
            <div class="archive-content">
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2018/12" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">12月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2018/11" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">11月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2018/09" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">9月</span>
                        <span class="count">3篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2018/07" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">7月</span>
                        <span class="count">2篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2018/05" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">5月</span>
                        <span class="count">4篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2018/04" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">4月</span>
                        <span class="count">2篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2018/03" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">3月</span>
                        <span class="count">2篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2018/01" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">1月</span>
                        <span class="count">4篇</span>
                        </a>
                    </div>
                            </div>
                        <div class="archive-title">2017</div>
            <div class="archive-content">
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2017/12" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">12月</span>
                        <span class="count">2篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2017/11" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">11月</span>
                        <span class="count">3篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2017/10" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">10月</span>
                        <span class="count">7篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2017/08" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">8月</span>
                        <span class="count">7篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2017/07" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">7月</span>
                        <span class="count">5篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2017/06" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">6月</span>
                        <span class="count">6篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2017/03" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">3月</span>
                        <span class="count">7篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2017/02" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">2月</span>
                        <span class="count">3篇</span>
                        </a>
                    </div>
                            </div>
                        <div class="archive-title">2016</div>
            <div class="archive-content">
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2016/12" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">12月</span>
                        <span class="count">2篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2016/11" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">11月</span>
                        <span class="count">5篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2016/10" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">10月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2016/09" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">9月</span>
                        <span class="count">2篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2016/08" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">8月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2016/04" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">4月</span>
                        <span class="count">2篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2016/03" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">3月</span>
                        <span class="count">4篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2016/01" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">1月</span>
                        <span class="count">2篇</span>
                        </a>
                    </div>
                            </div>
                        <div class="archive-title">2015</div>
            <div class="archive-content">
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2015/11" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">11月</span>
                        <span class="count">3篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2015/09" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">9月</span>
                        <span class="count">3篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2015/08" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">8月</span>
                        <span class="count">4篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2015/06" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">6月</span>
                        <span class="count">3篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2015/05" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">5月</span>
                        <span class="count">2篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2015/04" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">4月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2015/03" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">3月</span>
                        <span class="count">2篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2015/02" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">2月</span>
                        <span class="count">10篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2015/01" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">1月</span>
                        <span class="count">10篇</span>
                        </a>
                    </div>
                            </div>
                        <div class="archive-title">2014</div>
            <div class="archive-content">
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2014/12" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">12月</span>
                        <span class="count">5篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2014/09" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">9月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2014/07" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">7月</span>
                        <span class="count">3篇</span>
                        </a>
                    </div>
                            </div>
                        <div class="archive-title">2013</div>
            <div class="archive-content">
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2013/10" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">10月</span>
                        <span class="count">2篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2013/06" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">6月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2013/05" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">5月</span>
                        <span class="count">2篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2013/04" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">4月</span>
                        <span class="count">5篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2013/03" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">3月</span>
                        <span class="count">2篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2013/02" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">2月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2013/01" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">1月</span>
                        <span class="count">4篇</span>
                        </a>
                    </div>
                            </div>
                        <div class="archive-title">2012</div>
            <div class="archive-content">
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2012/09" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">9月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2012/08" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">8月</span>
                        <span class="count">3篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2012/05" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">5月</span>
                        <span class="count">8篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2012/04" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">4月</span>
                        <span class="count">3篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2012/03" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">3月</span>
                        <span class="count">3篇</span>
                        </a>
                    </div>
                            </div>
                        <div class="archive-title">2011</div>
            <div class="archive-content">
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2011/02" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">2月</span>
                        <span class="count">6篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2011/01" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">1月</span>
                        <span class="count">10篇</span>
                        </a>
                    </div>
                            </div>
                        <div class="archive-title">2010</div>
            <div class="archive-content">
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2010/12" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">12月</span>
                        <span class="count">4篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2010/11" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">11月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2010/10" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">10月</span>
                        <span class="count">3篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2010/08" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">8月</span>
                        <span class="count">13篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2010/07" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">7月</span>
                        <span class="count">6篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2010/06" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">6月</span>
                        <span class="count">6篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2010/05" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">5月</span>
                        <span class="count">4篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2010/04" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">4月</span>
                        <span class="count">5篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2010/03" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">3月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2010/02" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">2月</span>
                        <span class="count">5篇</span>
                        </a>
                    </div>
                                    <div class="archive-item">
                        <a href="https://blog.csdn.net/wankunde/article/month/2010/01" target="_blank" data-report-click='{"mod":"popu_538","ab":"new","dest":""}' data-report-view='{"mod":"popu_538","ab":"new","dest":""}'>
                        <span class="time">1月</span>
                        <span class="count">1篇</span>
                        </a>
                    </div>
                            </div>
                    </div>
    </div>
</div>
<div id="asideHotArticle" class="aside-box">
	<h3 class="aside-title">热门文章</h3>
	<div class="aside-content">
		<ul class="hotArticle-list">
							<li>

                    <a
                    data-report-click='{"mod":"popu_541","dest":"https://blog.csdn.net/wankunde/article/details/41675079","ab":"new"}' 
                     href="https://blog.csdn.net/wankunde/article/details/41675079" >
                                                Spark 学习入门教程                        <img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt=""><span class="read">97409</span>
                    </a>
				</li>
							<li>

                    <a
                    data-report-click='{"mod":"popu_541","dest":"https://blog.csdn.net/wankunde/article/details/41843217","ab":"new"}' 
                     href="https://blog.csdn.net/wankunde/article/details/41843217" >
                                                spark 开发环境搭建                        <img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt=""><span class="read">26112</span>
                    </a>
				</li>
							<li>

                    <a
                    data-report-click='{"mod":"popu_541","dest":"https://blog.csdn.net/wankunde/article/details/52514027","ab":"new"}' 
                     href="https://blog.csdn.net/wankunde/article/details/52514027" >
                                                房地产投资占GDP比例畸高 中国房地产泡沫是一颗毒瘤                        <img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt=""><span class="read">20215</span>
                    </a>
				</li>
							<li>

                    <a
                    data-report-click='{"mod":"popu_541","dest":"https://blog.csdn.net/wankunde/article/details/50843574","ab":"new"}' 
                     href="https://blog.csdn.net/wankunde/article/details/50843574" >
                                                Spark Streamning 程序调试                        <img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt=""><span class="read">13045</span>
                    </a>
				</li>
							<li>

                    <a
                    data-report-click='{"mod":"popu_541","dest":"https://blog.csdn.net/wankunde/article/details/78624685","ab":"new"}' 
                     href="https://blog.csdn.net/wankunde/article/details/78624685" >
                                                Impala 安装配置                        <img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt=""><span class="read">6465</span>
                    </a>
				</li>
					</ul>
	</div>
</div>
<div id="asideNewComments" class="aside-box">
    <h3 class="aside-title">最新评论</h3>
    <div class="aside-content">
        <ul class="newcomment-list">
                        <li>
                <a class="title text-truncate" data-report-click='{"mod":"popu_542","dest":"https://blog.csdn.net/wankunde/article/details/100992447#comments","ab":"new"}'  target="_blank" href="https://blog.csdn.net/wankunde/article/details/100992447#comments">Uber jvm-profiler...</a>
                <p class="comment ellipsis">
                    <a href="https://my.csdn.net/weixin_44130392" class="user-name" target="_blank">weixin_44130392：</a>[reply]wankunde[/reply]
已经看到了，谢谢大神                </p>
            </li>
                        <li>
                <a class="title text-truncate" data-report-click='{"mod":"popu_542","dest":"https://blog.csdn.net/wankunde/article/details/100992447#comments","ab":"new"}'  target="_blank" href="https://blog.csdn.net/wankunde/article/details/100992447#comments">Uber jvm-profiler...</a>
                <p class="comment ellipsis">
                    <a href="https://my.csdn.net/wankunde" class="user-name" target="_blank">wankunde：</a>[reply]weixin_44130392[/reply]
你可以重新pull一下源码, uber 刚刚把我贡献的代码merge 到master分支了                </p>
            </li>
                        <li>
                <a class="title text-truncate" data-report-click='{"mod":"popu_542","dest":"https://blog.csdn.net/wankunde/article/details/100992447#comments","ab":"new"}'  target="_blank" href="https://blog.csdn.net/wankunde/article/details/100992447#comments">Uber jvm-profiler...</a>
                <p class="comment ellipsis">
                    <a href="https://my.csdn.net/weixin_44130392" class="user-name" target="_blank">weixin_44130392：</a>github上没有GraphiteOutputReporter的源代码呀                </p>
            </li>
                        <li>
                <a class="title text-truncate" data-report-click='{"mod":"popu_542","dest":"https://blog.csdn.net/wankunde/article/details/56288713#comments","ab":"new"}'  target="_blank" href="https://blog.csdn.net/wankunde/article/details/56288713#comments">Hive，MapReduce执行流...</a>
                <p class="comment ellipsis">
                    <a href="https://my.csdn.net/wankunde" class="user-name" target="_blank">wankunde：</a>[reply]qq_44375666[/reply]
Hive本身只是一个SQL 引擎，他会将任务翻译为MR，MR在执行的时候包含MapTask 和 ReduceTask                </p>
            </li>
                        <li>
                <a class="title text-truncate" data-report-click='{"mod":"popu_542","dest":"https://blog.csdn.net/wankunde/article/details/88538733#comments","ab":"new"}'  target="_blank" href="https://blog.csdn.net/wankunde/article/details/88538733#comments">Spark Scan大表时任务启动...</a>
                <p class="comment ellipsis">
                    <a href="https://my.csdn.net/hanlei279" class="user-name" target="_blank">hanlei279：</a>不错                </p>
            </li>
                    </ul>
    </div>
</div>
            <div id="footerRightAds">
        <div class="aside-box">
            <div id="kp_box_57" data-pid="57"><script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- 博客内页左下视窗-20181130 -->
<ins class="adsbygoogle"
     style="display:inline-block;width:300px;height:250px"
     data-ad-client="ca-pub-1076724771190722"
     data-ad-slot="1894159733"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?p=57&a=707&c=0&k=&d=1&t=3&u=c09e1ad57c2c4772842e7be9942b3d22"></div>        </div>
        </div>
        <!-- 详情页显示目录 -->
        <!--文章目录-->
<div id="asidedirectory" class="aside-box">
    <div class='groupfile' id="directory">
        <h3 class="aside-title">目录</h3>
        <div class="align-items-stretch group_item">
            <div class="pos-box">
            <div class="scroll-box">
                <div class="toc-box"></div>
            </div>
            </div>
        </div>
    </div>
</div>
    	<div id="asideFooter">
		<div class="aside-box">
			<div class="persion_article">
			</div>
		</div>
	</div>
</aside>
<script src="https://csdnimg.cn/pubfooter/js/publib_footer-1.0.3.js" data-isfootertrack="false" type="text/javascript"></script>
<script>
	$("a.flexible-btn").click(function(){
		$(this).parents('div.aside-box').removeClass('flexible-box');
		$(this).parents("p.text-center").remove();
	})
</script>
<script type="text/javascript"  src="https://g.csdnimg.cn/user-tooltip/2.1/user-tooltip.js"></script>
        <main>
            
<div class="blog-content-box">
    <div class="article-header-box">
        <div class="article-header">
            <div class="article-title-box">
                <h1 class="title-article">ORC文件存储格式和数据写入过程</h1>
            </div>
            <div class="article-info-box">
                <div class="article-bar-top">
                    <!--文章类型-->
                                        <!--原创-->
                                        <img class="article-type-img" src="https://csdnimg.cn/release/phoenix/template/new_img/original.png" alt="">
                                        <!--翻译-->
                                        <!--转载-->
                                        <div class="bar-content">
                                                                                                                                            <a class="follow-nickName" href="https://me.csdn.net/wankunde" target="_blank" rel="noopener">wankunde</a>
                    <span class="time">2019-05-16 18:05:54</span>
                    <img class="article-read-img article-heard-img" src="https://csdnimg.cn/release/phoenix/template/new_img/articleRead.png" alt="">
                    <span class="read-count">1474</span>
                    <a id='blog_detail_zk_collection' class="un-collection" data-report-click='{"mod":"popu_823","ab":"new"}'>
                        <img class="article-collect-img article-heard-img un-collect-status" style="display:black" src="https://csdnimg.cn/release/phoenix/template/new_img/collect.png" alt="">
                        <img class="article-collect-img article-heard-img collect-status" style="display:none" src="https://csdnimg.cn/release/phoenix/template/new_img/tobarCollectionActive.png" alt="">
                        <span class="name">收藏</span>
                        <span class="get-collection">
                                                4                                                </span>
                    </a>
                                        </div>
                </div>
                                <div class="up-time"><span>最后发布:2019-05-16 18:05:54</span><span>首发:2019-05-16 18:05:54</span></div>
                <div class="slide-content-box">
                <div class="all-tags-box">
                                                        <div class="tags-box artic-tag-box">
                           <span class="label">分类专栏：</span>
                                                                                             <a class="tag-link" target="_blank" rel="noopener"
                                      href="https://blog.csdn.net/wankunde/category_2751099.html">
                                       hadoop                                   </a>
                                                                                  </div>
                                                                                                       </div>
                                                                    <div class="article-copyright">
                            <div class="creativecommons">
                                <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"></a>
                            </div>
                            <div class="creativecommons">
                                版权声明：本文为博主原创文章，遵循<a href="http://creativecommons.org/licenses/by-sa/4.0/" target="_blank" rel="noopener"> CC 4.0 BY-SA </a>版权协议，转载请附上原文出处链接和本声明。                            </div>
                            <div class="article-source-link">
                                本文链接：<a href="https://blog.csdn.net/wankunde/article/details/90269042">https://blog.csdn.net/wankunde/article/details/90269042</a>
                            </div> 
                        </div>
                                                                                </div>
                <div class="operating">
                                                                <a class="href-article-edit slide-toggle">展开</a>
                                    </div>
            </div>
        </div>
    </div>
    <!--python安装手册结束-->
                    <article class="baidu_pl">
                 <div id="article_content" class="article_content clearfix">
            <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-211130ba7a.css" />
                            <div id="content_views" class="markdown_views prism-atom-one-dark">
                    <!-- flowchart 箭头图标 勿删 -->
                    <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
                        <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
                    </svg>
                                            <p></p><div class="toc"><h3>文章目录</h3><ul><li><a href="#ORC__2" rel="nofollow">ORC 文件格式，配置参数及相关概念</a></li><ul><li><a href="#ORC__4" rel="nofollow">ORC 文件格式</a></li><li><a href="#UML_25" rel="nofollow">UML类图</a></li><li><a href="#OrcFile_writer__31" rel="nofollow">OrcFile writer 创建</a></li><li><a href="#OrcFile_Writer__36" rel="nofollow">OrcFile Writer 配置参数</a></li><li><a href="#_53" rel="nofollow">相关概念</a></li></ul><li><a href="#_DynamicIntArray__DynamicByteArray_58" rel="nofollow">动态数组 DynamicIntArray 和 DynamicByteArray</a></li><ul><li><a href="#_68" rel="nofollow">初始化</a></li><li><a href="#chunk__85" rel="nofollow">chunk 扩容</a></li></ul><li><a href="#OrcFile_writer_write__106" rel="nofollow">OrcFile writer的 write()方法 写数据</a></li><ul><li><a href="#WriterImpl_addRow_108" rel="nofollow">WriterImpl addRow程序入口</a></li><li><a href="#StringTreeWriter__void_writeObject_obj_135" rel="nofollow">StringTreeWriter : void write(Object obj)</a></li><li><a href="#StringTreeWriter__162" rel="nofollow">StringTreeWriter 内部数据存储结构</a></li><li><a href="#_dictionary_175" rel="nofollow">使用红黑树来做 dictionary</a></li></ul><li><a href="#OutStream__194" rel="nofollow">OutStream 管理</a></li><ul><li><a href="#_StreamFactory__BufferedStream_196" rel="nofollow">使用 StreamFactory 创建 BufferedStream</a></li><li><a href="#BufferedStream___RowIndexEntry__229" rel="nofollow">BufferedStream 数据写入 | RowIndexEntry 创建和管理</a></li><ul><li><a href="#recordDirectStreamPosition_303" rel="nofollow">recordDirectStreamPosition()</a></li></ul></ul><li><a href="#ORC_313" rel="nofollow">ORC物理文件写入</a></li><ul><li><a href="#MemoryManager__checkMemory_315" rel="nofollow">MemoryManager 的 checkMemory</a></li><li><a href="#ORC__OutputStream__333" rel="nofollow">ORC 建立 OutputStream 输出文件</a></li><ul><li><a href="#getStream__337" rel="nofollow">getStream() 方法调用入口：</a></li><li><a href="#OutputStream__345" rel="nofollow">OutputStream 说明：</a></li></ul><li><a href="#Stripe__370" rel="nofollow">Stripe 数据写入</a></li></ul><li><a href="#String_Dictionary_510" rel="nofollow">String Dictionary</a></li><li><a href="#RunLengthIntegerWriterV2_678" rel="nofollow">RunLengthIntegerWriterV2</a></li><li><a href="#_682" rel="nofollow">参考文献</a></li></ul></div><p></p>
<h1><a id="ORC__2"></a>ORC 文件格式，配置参数及相关概念</h1>
<h2><a id="ORC__4"></a>ORC 文件格式</h2>
<p><img src="https://cwiki.apache.org/confluence/download/attachments/31818911/OrcFileLayout.png?version=1&amp;modificationDate=1366430304000&amp;api=v2" alt="ORC 文件格式"></p>
<pre><code>Stripe:
  MAGIC
  stripe1 {
    data
    index
    footer
  },
  stripe2 {
    data
    index
    footer
  },
  ...
  metadata
  footer
  PostScript + size(PostScript)
</code></pre>
<h2><a id="UML_25"></a>UML类图</h2>
<p>部分关联类的调用关系</p>
<p><img src="http://www.plantuml.com/plantuml/png/XT2zIWD140VmVfzYs4g55BQf0a4XHGZ4WFLoEwU3UxjXTaBC0zXe2ci5GR3IAftWnzDuQkShcDEGoo7dLJVC_ER-p7QY69P9vjI8n27emR3xiNZAhr-rwcCMUDOttXmXWzxLiDDgWVOQ3fa4kUVJ06r8WXT3FZRxREoMVXhu1DB0Qi39FZcibmcZ4VnjgOr9iL3uvMV4k09hNxQKAkjAIcNh_VpbSt5R77rpyVKyp-Td-UL3VdVrzdYV79EpZFxFZrghUF8MJm_424MX9DQnA4nZx0RNJ5DoM2geJHw6QQy8XoQmvuLdIgtznZjK3RJ1MFjJRcshokZVcplexIHptm00" alt="ORC 类图"></p>
<h2><a id="OrcFile_writer__31"></a>OrcFile writer 创建</h2>
<p>通过 <code>OrcFile.createWriter()</code>静态方法设置写文件参数，生成一个<code>WriterImpl</code>对象来写ORC文件。</p>
<blockquote>
<p>Writer writer =  OrcFile.createWriter()</p>
</blockquote>
<h2><a id="OrcFile_Writer__36"></a>OrcFile Writer 配置参数</h2>
<ul>
<li>opts.configuration,</li>
<li>opts.inspectorValue, : 借用hive serde2 中的ObjectInspector 来解析 ROW，确定文件Schema</li>
<li>opts.stripeSizeValue (default = 64L * 1024 * 1024) : Writer 操作单元，stripe 内容先写入内存，内存满了之后Flush到磁盘</li>
<li>opts.compressValue (default = ZLIB)  : 允许的压缩方式 CompressionKind(NONE, ZLIB, * SNAPPY, LZO)</li>
<li>opts.bufferSizeValue (default = 256 * 1024) : memory buffers 大小</li>
<li>opts.rowIndexStrideValue (default = 10000) : Stride is the number of rows an index entry represents.</li>
<li>opts.memoryManagerValue, : 默认取当前Heap Max Size 的一半作为 totalMemoryPool</li>
<li>opts.blockPaddingValue,</li>
<li>opts.versionValue,</li>
<li>opts.callback, : when the stripe and file are about to be closed，flush 磁盘，默认还是* 调用在 WriterImpl.checkMemory() 方法</li>
<li>opts.encodingStrategy,</li>
<li>opts.compressionStrategy,</li>
<li>opts.paddingTolerance,</li>
<li>opts.blockSizeValue</li>
</ul>
<h2><a id="_53"></a>相关概念</h2>
<ul>
<li>Writer : 一个Path对应一个Writer，并根据Path 去重</li>
</ul>
<h1><a id="_DynamicIntArray__DynamicByteArray_58"></a>动态数组 DynamicIntArray 和 DynamicByteArray</h1>
<p>动态数组是ORC 读写文件中非常重要的一步，设计的目的是 memory optimization，具有如下特点：</p>
<ul>
<li>数据分chunks管理，当发生 resizes 操作的时候，只需要移动部分数据即可;</li>
<li>space efficient storage of potentially huge arrays without good a-priori size guesses;</li>
<li>API 介于 array 和 AbstractList之间</li>
<li>DynamicIntArray 和 DynamicByteArray 类似，却别在于一个内存存储Int，一个存储Byte.</li>
</ul>
<p>下面以 DynamicIntArray 为例。</p>
<h2><a id="_68"></a>初始化</h2>
<blockquote>
<p>DEFAULT_CHUNKSIZE = 8 * 1024<br>
data = new int[128][];</p>
</blockquote>
<ul>
<li>chunk初始个数 128个，每个ChunkSize 为 8192</li>
<li>增删改查操作需要根据 index，计算出对应的chunk 和在该chunk 内的偏移量来操作数据</li>
<li>当chunk个数不够的时候，将chunk个数 double一下，申请新的二维数组再来管理</li>
<li>内存空间的分配是根据当前使用到的最大 chunkIndex 需要来分配的，不会造成资源浪费。</li>
</ul>
<pre><code>  data[0] : 0 - 8191 
  data[1] : 8192 - 16384
  ...
  data[n] : 
</code></pre>
<h2><a id="chunk__85"></a>chunk 扩容</h2>
<pre><code class="prism language-java">  <span class="token comment">/**
   * Ensure that the given index is valid.
   */</span>
  <span class="token keyword">private</span> <span class="token keyword">void</span> <span class="token function">grow</span><span class="token punctuation">(</span><span class="token keyword">int</span> chunkIndex<span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token keyword">if</span> <span class="token punctuation">(</span>chunkIndex <span class="token operator">&gt;=</span> initializedChunks<span class="token punctuation">)</span> <span class="token punctuation">{</span>
      <span class="token keyword">if</span> <span class="token punctuation">(</span>chunkIndex <span class="token operator">&gt;=</span> data<span class="token punctuation">.</span>length<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">int</span> newSize <span class="token operator">=</span> Math<span class="token punctuation">.</span><span class="token function">max</span><span class="token punctuation">(</span>chunkIndex <span class="token operator">+</span> <span class="token number">1</span><span class="token punctuation">,</span> <span class="token number">2</span> <span class="token operator">*</span> data<span class="token punctuation">.</span>length<span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">]</span> newChunk <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">int</span><span class="token punctuation">[</span>newSize<span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
        System<span class="token punctuation">.</span><span class="token function">arraycopy</span><span class="token punctuation">(</span>data<span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> newChunk<span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> data<span class="token punctuation">.</span>length<span class="token punctuation">)</span><span class="token punctuation">;</span>
        data <span class="token operator">=</span> newChunk<span class="token punctuation">;</span>
      <span class="token punctuation">}</span>
      <span class="token keyword">for</span> <span class="token punctuation">(</span><span class="token keyword">int</span> i<span class="token operator">=</span>initializedChunks<span class="token punctuation">;</span> i <span class="token operator">&lt;=</span> chunkIndex<span class="token punctuation">;</span> <span class="token operator">++</span>i<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        data<span class="token punctuation">[</span>i<span class="token punctuation">]</span> <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">int</span><span class="token punctuation">[</span>chunkSize<span class="token punctuation">]</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span>
      initializedChunks <span class="token operator">=</span> chunkIndex <span class="token operator">+</span> <span class="token number">1</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
  <span class="token punctuation">}</span>
</code></pre>
<h1><a id="OrcFile_writer_write__106"></a>OrcFile writer的 write()方法 写数据</h1>
<h2><a id="WriterImpl_addRow_108"></a>WriterImpl addRow程序入口</h2>
<p>这里是后面程序入口，后面均会有介绍：</p>
<ul>
<li>treeWriter 写数据</li>
<li>RowIndexEntry 管理</li>
<li>memoryManager 内存管理</li>
<li>Stripe 生成(flushStripe)</li>
</ul>
<pre><code class="prism language-java">  <span class="token annotation punctuation">@Override</span>
  <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">addRow</span><span class="token punctuation">(</span>Object row<span class="token punctuation">)</span> <span class="token keyword">throws</span> IOException <span class="token punctuation">{</span>
    <span class="token keyword">synchronized</span> <span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
      <span class="token comment">// 这里只是做 indexStatistics，NULL，bit位的一些统计</span>
      treeWriter<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>row<span class="token punctuation">)</span><span class="token punctuation">;</span>
      rowsInStripe <span class="token operator">+=</span> <span class="token number">1</span><span class="token punctuation">;</span>
      <span class="token keyword">if</span> <span class="token punctuation">(</span>buildIndex<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        rowsInIndex <span class="token operator">+=</span> <span class="token number">1</span><span class="token punctuation">;</span>
        <span class="token comment">// rows</span>
        <span class="token keyword">if</span> <span class="token punctuation">(</span>rowsInIndex <span class="token operator">&gt;=</span> rowIndexStride<span class="token punctuation">)</span> <span class="token punctuation">{</span>  
          <span class="token function">createRowIndexEntry</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
      <span class="token punctuation">}</span>
    <span class="token punctuation">}</span>
    memoryManager<span class="token punctuation">.</span><span class="token function">addedRow</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span>
</code></pre>
<h2><a id="StringTreeWriter__void_writeObject_obj_135"></a>StringTreeWriter : void write(Object obj)</h2>
<pre><code class="prism language-java">    <span class="token comment">// StringTreeWriter</span>
    <span class="token annotation punctuation">@Override</span>
    <span class="token keyword">void</span> <span class="token function">write</span><span class="token punctuation">(</span>Object obj<span class="token punctuation">)</span> <span class="token keyword">throws</span> IOException <span class="token punctuation">{</span>
      <span class="token keyword">super</span><span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>obj<span class="token punctuation">)</span><span class="token punctuation">;</span>  <span class="token comment">// 父类TreeWriter 为抽象类，只做一些 indexStatistics 统计等抽象操作</span>
      <span class="token keyword">if</span> <span class="token punctuation">(</span>obj <span class="token operator">!=</span> null<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        Text val <span class="token operator">=</span> <span class="token function">getTextValue</span><span class="token punctuation">(</span>obj<span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">if</span> <span class="token punctuation">(</span>useDictionaryEncoding <span class="token operator">||</span> <span class="token operator">!</span>strideDictionaryCheck<span class="token punctuation">)</span> <span class="token punctuation">{</span>
          rows<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>dictionary<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>val<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
          <span class="token comment">// write data and length</span>
          directStreamOutput<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>val<span class="token punctuation">.</span><span class="token function">getBytes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> val<span class="token punctuation">.</span><span class="token function">getLength</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          directLengthOutput<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>val<span class="token punctuation">.</span><span class="token function">getLength</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
        indexStatistics<span class="token punctuation">.</span><span class="token function">updateString</span><span class="token punctuation">(</span>val<span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span>
    <span class="token punctuation">}</span>
</code></pre>
<ul>
<li>未使用字典压缩(useDictionaryEncoding=false) 且 已经做了是否使用字典检查（strideDictionaryCheck =true)
<ul>
<li>不需要使用字典
<ul>
<li>将data and length直接写入OutStream，至于 directStreamOutput 和 directLengthOutput 后面会有详细介绍</li>
</ul>
</li>
</ul>
</li>
<li>否则调用 <code>rows.add(dictionary.add(val));</code>
<ul>
<li>dictionary.add(val) : 使用红黑树存储当前字符串的bytes值</li>
<li>rows.add(dictionary.add(val)); : 元素存储在dictionary中的offset</li>
</ul>
</li>
</ul>
<h2><a id="StringTreeWriter__162"></a>StringTreeWriter 内部数据存储结构</h2>
<p>例如，现在要写入两个字符串，<code>01</code>和<code>234</code>(因为对象的存储最终会存储该对象Writable方法的UDF-8编码 chars，所以使用数字字符串来理解);</p>
<ul>
<li>
<p>内部数据存储结构<br>
<img src="https://img-blog.csdnimg.cn/20190516180924546.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbmt1bmRl,size_16,color_FFFFFF,t_70" alt="内部数据存储结构"></p>
</li>
<li>
<p>StringTreeWriter 中数据存储</p>
</li>
</ul>
<p><img src="http://www.plantuml.com/plantuml/png/SoWkIImgAStDuGekAShCImyfIaqDByeiIIrIK39KKj3LrGNJAPd99PdvUOb5bGfM2X2LGQafJZc9oTaW7VWr5-MN5mErkLJc9UPc9dlcbJWM5ILMAd0X34LHdbHPaWfMWT3Z11F2fISxjT8_BQqujGIBHLmEgNafG1y20000" alt="StringTreeWriter 中数据存储"></p>
<h2><a id="_dictionary_175"></a>使用红黑树来做 dictionary</h2>
<ul>
<li>如果 newKey 在 红黑树中不存在：
<ul>
<li>add() 返回true，</li>
<li>将newKey的bytes数据存入byteArray</li>
<li>将数据在 byteArray中的offset 存入 keyOffsets</li>
</ul>
</li>
</ul>
<pre><code class="prism language-java">  <span class="token comment">// StringRedBlackTree </span>
  <span class="token keyword">private</span> <span class="token keyword">int</span> <span class="token function">addNewKey</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token comment">// if the newKey is actually new, add it to our byteArray and store the offset &amp; length</span>
    <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">add</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
      <span class="token keyword">int</span> len <span class="token operator">=</span> newKey<span class="token punctuation">.</span><span class="token function">getLength</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      keyOffsets<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>byteArray<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>newKey<span class="token punctuation">.</span><span class="token function">getBytes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> len<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
    <span class="token keyword">return</span> lastAdd<span class="token punctuation">;</span>
  <span class="token punctuation">}</span>
</code></pre>
<h1><a id="OutStream__194"></a>OutStream 管理</h1>
<h2><a id="_StreamFactory__BufferedStream_196"></a>使用 StreamFactory 创建 BufferedStream</h2>
<p>以StringTreeWriter 创建的Stream为例</p>
<blockquote>
<p>private final StreamFactory streamFactory = new StreamFactory(); // 全局唯一 streamFactory<br>
treeWriter = createTreeWriter(inspector, streamFactory, false);<br>
new StringTreeWriter(streamFactory.getNextColumnId(), inspector, streamFactory, nullable); // 根据 inspector.getCategory() 类型创建对应的TreeWriter<br>
super(columnId, inspector, writer, nullable);  // 调用父类 TreeWriter() 构造方法<br>
rowIndexStream = streamFactory.createStream(id, OrcProto.Stream.Kind.ROW_INDEX);  // 因为 HIVE_ORC_DEFAULT_ROW_INDEX_STRIDE(“hive.exec.orc.default.row.index.stride”, 10000) 默认 stride &gt; 0（Stride is the number of rows an index entry represents.） 所以创建 (id=0,ROW_INDEX) 类型 OutStream<br>
在 StringTreeWriter 构造方法中创建其他三个Stream</p>
</blockquote>
<ul>
<li>
<p>根据 column 和 kind 创建 OutStream 对象，并在 streams 中记录，后续在 flushStripe() 方法中会处理所有的streams.</p>
</li>
<li>
<p>BufferedStream 中有两个对象，<code>OutStream outStream</code>和<code>List&lt;ByteBuffer&gt; output</code>。<code>TreeWriters</code>直接写数据到<code>outStream</code>; <code>codec</code> compresses the data as buffers 存储在<code>output</code>;</p>
</li>
<li>
<p>StringTreeWriter 内部Stream和引用对象关系</p>
<ul>
<li>使用DictionaryEncoding<br>
<img src="https://img-blog.csdnimg.cn/20190516181018154.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbmt1bmRl,size_16,color_FFFFFF,t_70" alt="使用DictionaryEncoding"></li>
<li>没有使用DictionaryEncoding<br>
<img src="https://img-blog.csdnimg.cn/20190516181047700.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dhbmt1bmRl,size_16,color_FFFFFF,t_70" alt="没有使用DictionaryEncoding"></li>
</ul>
</li>
<li>
<p>所有 TreeWriter 都有rowIndexStream</p>
</li>
<li>
<p>对于 LENGTH 类型的Stream 使用 createIntegerWriter 进行包装</p>
</li>
<li>
<p>对于 DATA 类型Stream，有createIntegerWriter的包装，也有Direct Stream</p>
</li>
</ul>
<p>Column 可能创建的Stream 类型(OrcProto.Stream.Kind)：</p>
<ul>
<li>DATA</li>
<li>DICTIONARY_DATA</li>
<li>LENGTH:</li>
<li>DICTIONARY_COUNT:</li>
<li>PRESENT:</li>
<li>ROW_INDEX:</li>
<li>SECONDARY:</li>
</ul>
<h2><a id="BufferedStream___RowIndexEntry__229"></a>BufferedStream 数据写入 | RowIndexEntry 创建和管理</h2>
<ul>
<li>当前IndexEntry 中记录数超过 10000 条，创建新的 IndexEntry，并添加到 rowIndex 中。</li>
<li>OutStream 的write方法先将需要write的数据写入到 ByteBuffer current 中；当 current 被写满后，开始 spill()</li>
<li>在 BufferedStream 中有一个List output来存储中间结果，spill() 其实就是将将 current 添加到 BufferedStream的 output中，然后重新申请一个新的ByteBuffer 。</li>
</ul>
<pre><code class="prism language-java">StringTreeWriter <span class="token operator">:</span> <span class="token keyword">void</span> <span class="token function">createRowIndexEntry</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">|</span> <span class="token keyword">void</span> <span class="token function">writeStripe</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token keyword">private</span> <span class="token keyword">void</span> <span class="token function">flushDictionary</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
      <span class="token keyword">final</span> <span class="token keyword">int</span><span class="token punctuation">[</span><span class="token punctuation">]</span> dumpOrder <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">int</span><span class="token punctuation">[</span>dictionary<span class="token punctuation">.</span><span class="token function">size</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
      <span class="token keyword">if</span> <span class="token punctuation">(</span>useDictionaryEncoding<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token comment">// Write the dictionary by traversing the red-black tree writing out</span>
        <span class="token comment">// the bytes and lengths; and creating the map from the original order</span>
        <span class="token comment">// to the final sorted order.</span>

        <span class="token comment">// 对red-black tree中所有node调用visit方法，将数据写入到 BufferedStream</span>
        dictionary<span class="token punctuation">.</span><span class="token function">visit</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">StringRedBlackTree<span class="token punctuation">.</span>Visitor</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
          <span class="token keyword">private</span> <span class="token keyword">int</span> currentId <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
          <span class="token annotation punctuation">@Override</span>
          <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">visit</span><span class="token punctuation">(</span>StringRedBlackTree<span class="token punctuation">.</span>VisitorContext context
                           <span class="token punctuation">)</span> <span class="token keyword">throws</span> IOException <span class="token punctuation">{</span>
            <span class="token comment">// 将red-black tree 中当前节点写入 stringOutput : DICTIONARY_DATA</span>
            context<span class="token punctuation">.</span><span class="token function">writeBytes</span><span class="token punctuation">(</span>stringOutput<span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token comment">// 将当前节点长度写入 lengthOutput : LENGTH</span>
            lengthOutput<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>context<span class="token punctuation">.</span><span class="token function">getLength</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token comment">// 当前节点在树中的位置，</span>
            dumpOrder<span class="token punctuation">[</span>context<span class="token punctuation">.</span><span class="token function">getOriginalPosition</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">]</span> <span class="token operator">=</span> currentId<span class="token operator">++</span><span class="token punctuation">;</span>
          <span class="token punctuation">}</span>
        <span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
        <span class="token comment">// for direct encoding, we don't want the dictionary data stream</span>
        stringOutput<span class="token punctuation">.</span><span class="token function">suppress</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span>
      <span class="token keyword">int</span> length <span class="token operator">=</span> rows<span class="token punctuation">.</span><span class="token function">size</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token keyword">int</span> rowIndexEntry <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
      OrcProto<span class="token punctuation">.</span>RowIndex<span class="token punctuation">.</span>Builder rowIndex <span class="token operator">=</span> <span class="token function">getRowIndex</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      Text text <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">Text</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token comment">// write the values translated into the dump order.</span>
      <span class="token keyword">for</span><span class="token punctuation">(</span><span class="token keyword">int</span> i <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span> i <span class="token operator">&lt;=</span> length<span class="token punctuation">;</span> <span class="token operator">++</span>i<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token comment">// now that we are writing out the row values, we can finalize the</span>
        <span class="token comment">// row index</span>
        <span class="token keyword">if</span> <span class="token punctuation">(</span>buildIndex<span class="token punctuation">)</span> <span class="token punctuation">{</span>
          <span class="token comment">// 对于每个 RowIndex，将base 对象包装为PositionRecorder，并调用当前recorder的position</span>
          <span class="token keyword">while</span> <span class="token punctuation">(</span>i <span class="token operator">==</span> rowIndexValueCount<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>rowIndexEntry<span class="token punctuation">)</span> <span class="token operator">&amp;&amp;</span>
              rowIndexEntry <span class="token operator">&lt;</span> savedRowIndex<span class="token punctuation">.</span><span class="token function">size</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            OrcProto<span class="token punctuation">.</span>RowIndexEntry<span class="token punctuation">.</span>Builder base <span class="token operator">=</span>
                savedRowIndex<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>rowIndexEntry<span class="token operator">++</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">toBuilder</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token keyword">if</span> <span class="token punctuation">(</span>useDictionaryEncoding<span class="token punctuation">)</span> <span class="token punctuation">{</span>
              rowOutput<span class="token punctuation">.</span><span class="token function">getPosition</span><span class="token punctuation">(</span><span class="token keyword">new</span> <span class="token class-name">RowIndexPositionRecorder</span><span class="token punctuation">(</span>base<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
              PositionRecorder posn <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">RowIndexPositionRecorder</span><span class="token punctuation">(</span>base<span class="token punctuation">)</span><span class="token punctuation">;</span>
              directStreamOutput<span class="token punctuation">.</span><span class="token function">getPosition</span><span class="token punctuation">(</span>posn<span class="token punctuation">)</span><span class="token punctuation">;</span>
              directLengthOutput<span class="token punctuation">.</span><span class="token function">getPosition</span><span class="token punctuation">(</span>posn<span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token punctuation">}</span>
            <span class="token comment">// base.build() 创建一个 RowIndexEntry 实例，再添加到 rowIndex</span>
            rowIndex<span class="token punctuation">.</span><span class="token function">addEntry</span><span class="token punctuation">(</span>base<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token punctuation">}</span>
        <span class="token punctuation">}</span>
        <span class="token keyword">if</span> <span class="token punctuation">(</span>i <span class="token operator">!=</span> length<span class="token punctuation">)</span> <span class="token punctuation">{</span>
          <span class="token keyword">if</span> <span class="token punctuation">(</span>useDictionaryEncoding<span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token comment">// 如果使用字典压缩，因为dictionary数据已经全部写出，只需要将对应数据在stringOutput : DICTIONARY_DATA 中的数组dumpOrder的下标即可</span>
            rowOutput<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>dumpOrder<span class="token punctuation">[</span>rows<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">]</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
            <span class="token comment">// 如果不使用字典，将 text 值，写入 directStreamOutput，将 text length 写入 directLengthOutput</span>
            dictionary<span class="token punctuation">.</span><span class="token function">getText</span><span class="token punctuation">(</span>text<span class="token punctuation">,</span> rows<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span>i<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            directStreamOutput<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>text<span class="token punctuation">.</span><span class="token function">getBytes</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> text<span class="token punctuation">.</span><span class="token function">getLength</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            directLengthOutput<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>text<span class="token punctuation">.</span><span class="token function">getLength</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token punctuation">}</span>
        <span class="token punctuation">}</span>
      <span class="token punctuation">}</span>
      rows<span class="token punctuation">.</span><span class="token function">clear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
</code></pre>
<h3><a id="recordDirectStreamPosition_303"></a>recordDirectStreamPosition()</h3>
<p>在flush 完数据后，在下面的recordDirectStreamPosition() 方法中</p>
<ul>
<li>directStreamOutput中position
<ul>
<li>codec = null 记录 uncompressedBytes</li>
<li>codec != null 记录 compressedBytes, uncompressedBytes</li>
</ul>
</li>
<li>记录 directLengthOutput 中position
<ul>
<li>因为是RunLengthIntegerWriterV2，先记录和上面一个的 position</li>
<li>再补充记录一个 numLiterals</li>
</ul>
</li>
</ul>
<h1><a id="ORC_313"></a>ORC物理文件写入</h1>
<h2><a id="MemoryManager__checkMemory_315"></a>MemoryManager 的 checkMemory</h2>
<p>通过addRow() 方法入口，每5000条记录，检查一下内存使用是否超出 limit 限制，超出限制后，调用 flushStripe()</p>
<pre><code class="prism language-java">  <span class="token annotation punctuation">@Override</span>
  <span class="token keyword">public</span> <span class="token keyword">synchronized</span> <span class="token keyword">boolean</span> <span class="token function">checkMemory</span><span class="token punctuation">(</span><span class="token keyword">double</span> newScale<span class="token punctuation">)</span> <span class="token keyword">throws</span> IOException <span class="token punctuation">{</span>
    <span class="token keyword">long</span> limit <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token keyword">long</span><span class="token punctuation">)</span> Math<span class="token punctuation">.</span><span class="token function">round</span><span class="token punctuation">(</span>adjustedStripeSize <span class="token operator">*</span> newScale<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">long</span> size <span class="token operator">=</span> <span class="token function">estimateStripeSize</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">.</span><span class="token punctuation">.</span><span class="token punctuation">.</span>
    <span class="token keyword">if</span> <span class="token punctuation">(</span>size <span class="token operator">&gt;</span> limit<span class="token punctuation">)</span> <span class="token punctuation">{</span>
      <span class="token function">flushStripe</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token keyword">return</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
    <span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
  <span class="token punctuation">}</span>
</code></pre>
<h2><a id="ORC__OutputStream__333"></a>ORC 建立 OutputStream 输出文件</h2>
<p>输出流的建立时机发生在checkMemory满足条件 或 close() 文件时，调用 flushStripe()方法。</p>
<h3><a id="getStream__337"></a>getStream() 方法调用入口：</h3>
<ul>
<li>void close()
<ul>
<li>void flushStripe()</li>
<li>int writeMetadata(long bodyLength)</li>
<li>int writeFooter(long bodyLength)</li>
</ul>
</li>
<li>OrcFileMergeOperator : void processKeyValuePairs(Object key, Object value)
<ul>
<li>void appendStripe(byte[] stripe, int offset, int length,StripeInformation stripeInfo,OrcProto.StripeStatistics stripeStatistics)</li>
</ul>
</li>
</ul>
<h3><a id="OutputStream__345"></a>OutputStream 说明：</h3>
<ul>
<li>rawWriter : 对应HDFS 文件 writer</li>
<li>writer 和  protobufWriter:
<ul>
<li>DirectStream : 包装 rawWriter，增加向outputStrema 写 ByteBuffer功能</li>
<li>write() 方法将数据写入 current 中</li>
<li>在 spill() 和 flush() 方法中调用 codec.compress(current, compressed, overflow)，再将  compressed 数据写出</li>
<li>CodedOutputStream protobufWriter : 使用protobuf 包装 writer，增强写入BUFFER功能。</li>
<li>每次 protobufWriter flulsh之后，会同步flush writer。</li>
</ul>
</li>
</ul>
<pre><code class="prism language-java">  <span class="token annotation punctuation">@VisibleForTesting</span>
  FSDataOutputStream <span class="token function">getStream</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">throws</span> IOException <span class="token punctuation">{</span>
    <span class="token keyword">if</span> <span class="token punctuation">(</span>rawWriter <span class="token operator">==</span> null<span class="token punctuation">)</span> <span class="token punctuation">{</span>
      rawWriter <span class="token operator">=</span> fs<span class="token punctuation">.</span><span class="token function">create</span><span class="token punctuation">(</span>path<span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">,</span> HDFS_BUFFER_SIZE<span class="token punctuation">,</span>
                            fs<span class="token punctuation">.</span><span class="token function">getDefaultReplication</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">,</span> blockSize<span class="token punctuation">)</span><span class="token punctuation">;</span>
      rawWriter<span class="token punctuation">.</span><span class="token function">writeBytes</span><span class="token punctuation">(</span>OrcFile<span class="token punctuation">.</span>MAGIC<span class="token punctuation">)</span><span class="token punctuation">;</span>
      headerLength <span class="token operator">=</span> rawWriter<span class="token punctuation">.</span><span class="token function">getPos</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      writer <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">OutStream</span><span class="token punctuation">(</span><span class="token string">"metadata"</span><span class="token punctuation">,</span> bufferSize<span class="token punctuation">,</span> codec<span class="token punctuation">,</span>
                             <span class="token keyword">new</span> <span class="token class-name">DirectStream</span><span class="token punctuation">(</span>rawWriter<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      protobufWriter <span class="token operator">=</span> CodedOutputStream<span class="token punctuation">.</span><span class="token function">newInstance</span><span class="token punctuation">(</span>writer<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
    <span class="token keyword">return</span> rawWriter<span class="token punctuation">;</span>
  <span class="token punctuation">}</span>
</code></pre>
<h2><a id="Stripe__370"></a>Stripe 数据写入</h2>
<ul>
<li>将streams中的数据全部flush到ByteBuffer List中</li>
<li>依次将 streams 中各个Stream 中数据写入到文件，实现列存储</li>
<li>写入 footer</li>
<li>build StripeInformation 对象，包括 Offset,rowsInStripe,indexSize,dataSize,footerLength</li>
<li>rowCount</li>
</ul>
<pre><code class="prism language-java">  <span class="token keyword">private</span> <span class="token keyword">void</span> <span class="token function">flushStripe</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">throws</span> IOException <span class="token punctuation">{</span>
    <span class="token function">getStream</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">if</span> <span class="token punctuation">(</span>buildIndex <span class="token operator">&amp;&amp;</span> rowsInIndex <span class="token operator">!=</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
      <span class="token function">createRowIndexEntry</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
    <span class="token keyword">if</span> <span class="token punctuation">(</span>rowsInStripe <span class="token operator">!=</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
      <span class="token keyword">if</span> <span class="token punctuation">(</span>callback <span class="token operator">!=</span> null<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        callback<span class="token punctuation">.</span><span class="token function">preStripeWrite</span><span class="token punctuation">(</span>callbackContext<span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span>
      <span class="token comment">// finalize the data for the stripe</span>
      <span class="token keyword">int</span> requiredIndexEntries <span class="token operator">=</span> rowIndexStride <span class="token operator">==</span> <span class="token number">0</span> <span class="token operator">?</span> <span class="token number">0</span> <span class="token operator">:</span>
          <span class="token punctuation">(</span><span class="token keyword">int</span><span class="token punctuation">)</span> <span class="token punctuation">(</span><span class="token punctuation">(</span>rowsInStripe <span class="token operator">+</span> rowIndexStride <span class="token operator">-</span> <span class="token number">1</span><span class="token punctuation">)</span> <span class="token operator">/</span> rowIndexStride<span class="token punctuation">)</span><span class="token punctuation">;</span>
      OrcProto<span class="token punctuation">.</span>StripeFooter<span class="token punctuation">.</span>Builder builder <span class="token operator">=</span>
          OrcProto<span class="token punctuation">.</span>StripeFooter<span class="token punctuation">.</span><span class="token function">newBuilder</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      treeWriter<span class="token punctuation">.</span><span class="token function">writeStripe</span><span class="token punctuation">(</span>builder<span class="token punctuation">,</span> requiredIndexEntries<span class="token punctuation">)</span><span class="token punctuation">;</span>
      
      <span class="token keyword">long</span> indexSize <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
      <span class="token keyword">long</span> dataSize <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
      <span class="token keyword">for</span><span class="token punctuation">(</span>Map<span class="token punctuation">.</span>Entry<span class="token generics function"><span class="token punctuation">&lt;</span>StreamName<span class="token punctuation">,</span> BufferedStream<span class="token punctuation">&gt;</span></span> pair<span class="token operator">:</span> streams<span class="token punctuation">.</span><span class="token function">entrySet</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        BufferedStream stream <span class="token operator">=</span> pair<span class="token punctuation">.</span><span class="token function">getValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span>stream<span class="token punctuation">.</span><span class="token function">isSuppressed</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
          stream<span class="token punctuation">.</span><span class="token function">flush</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          StreamName name <span class="token operator">=</span> pair<span class="token punctuation">.</span><span class="token function">getKey</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token keyword">long</span> streamSize <span class="token operator">=</span> pair<span class="token punctuation">.</span><span class="token function">getValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">getOutputSize</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          builder<span class="token punctuation">.</span><span class="token function">addStreams</span><span class="token punctuation">(</span>OrcProto<span class="token punctuation">.</span>Stream<span class="token punctuation">.</span><span class="token function">newBuilder</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
                             <span class="token punctuation">.</span><span class="token function">setColumn</span><span class="token punctuation">(</span>name<span class="token punctuation">.</span><span class="token function">getColumn</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
                             <span class="token punctuation">.</span><span class="token function">setKind</span><span class="token punctuation">(</span>name<span class="token punctuation">.</span><span class="token function">getKind</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span>
                             <span class="token punctuation">.</span><span class="token function">setLength</span><span class="token punctuation">(</span>streamSize<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token keyword">if</span> <span class="token punctuation">(</span>StreamName<span class="token punctuation">.</span>Area<span class="token punctuation">.</span>INDEX <span class="token operator">==</span> name<span class="token punctuation">.</span><span class="token function">getArea</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            indexSize <span class="token operator">+=</span> streamSize<span class="token punctuation">;</span>
          <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
            dataSize <span class="token operator">+=</span> streamSize<span class="token punctuation">;</span>
          <span class="token punctuation">}</span>
        <span class="token punctuation">}</span>
      <span class="token punctuation">}</span>
      OrcProto<span class="token punctuation">.</span>StripeFooter footer <span class="token operator">=</span> builder<span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

      <span class="token comment">// Do we need to pad the file so the stripe doesn't straddle a block</span>
      <span class="token comment">// boundary?</span>
      <span class="token keyword">long</span> start <span class="token operator">=</span> rawWriter<span class="token punctuation">.</span><span class="token function">getPos</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token keyword">final</span> <span class="token keyword">long</span> currentStripeSize <span class="token operator">=</span> indexSize <span class="token operator">+</span> dataSize <span class="token operator">+</span> footer<span class="token punctuation">.</span><span class="token function">getSerializedSize</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token keyword">final</span> <span class="token keyword">long</span> available <span class="token operator">=</span> blockSize <span class="token operator">-</span> <span class="token punctuation">(</span>start <span class="token operator">%</span> blockSize<span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token keyword">final</span> <span class="token keyword">long</span> overflow <span class="token operator">=</span> currentStripeSize <span class="token operator">-</span> adjustedStripeSize<span class="token punctuation">;</span>
      <span class="token keyword">final</span> <span class="token keyword">float</span> availRatio <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token keyword">float</span><span class="token punctuation">)</span> available <span class="token operator">/</span> <span class="token punctuation">(</span><span class="token keyword">float</span><span class="token punctuation">)</span> defaultStripeSize<span class="token punctuation">;</span>

      <span class="token keyword">if</span> <span class="token punctuation">(</span>availRatio <span class="token operator">&gt;</span> <span class="token number">0.0f</span> <span class="token operator">&amp;&amp;</span> availRatio <span class="token operator">&lt;</span> <span class="token number">1.0f</span>
          <span class="token operator">&amp;&amp;</span> availRatio <span class="token operator">&gt;</span> paddingTolerance<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token comment">// adjust default stripe size to fit into remaining space, also adjust</span>
        <span class="token comment">// the next stripe for correction based on the current stripe size</span>
        <span class="token comment">// and user specified padding tolerance. Since stripe size can overflow</span>
        <span class="token comment">// the default stripe size we should apply this correction to avoid</span>
        <span class="token comment">// writing portion of last stripe to next hdfs block.</span>
        <span class="token keyword">float</span> correction <span class="token operator">=</span> overflow <span class="token operator">&gt;</span> <span class="token number">0</span> <span class="token operator">?</span> <span class="token punctuation">(</span><span class="token keyword">float</span><span class="token punctuation">)</span> overflow
            <span class="token operator">/</span> <span class="token punctuation">(</span><span class="token keyword">float</span><span class="token punctuation">)</span> adjustedStripeSize <span class="token operator">:</span> <span class="token number">0.0f</span><span class="token punctuation">;</span>

        <span class="token comment">// correction should not be greater than user specified padding</span>
        <span class="token comment">// tolerance</span>
        correction <span class="token operator">=</span> correction <span class="token operator">&gt;</span> paddingTolerance <span class="token operator">?</span> paddingTolerance
            <span class="token operator">:</span> correction<span class="token punctuation">;</span>

        <span class="token comment">// adjust next stripe size based on current stripe estimate correction</span>
        adjustedStripeSize <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token keyword">long</span><span class="token punctuation">)</span> <span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token number">1.0f</span> <span class="token operator">-</span> correction<span class="token punctuation">)</span> <span class="token operator">*</span> <span class="token punctuation">(</span>availRatio <span class="token operator">*</span> defaultStripeSize<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>availRatio <span class="token operator">&gt;=</span> <span class="token number">1.0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        adjustedStripeSize <span class="token operator">=</span> defaultStripeSize<span class="token punctuation">;</span>
      <span class="token punctuation">}</span>

      <span class="token keyword">if</span> <span class="token punctuation">(</span>availRatio <span class="token operator">&lt;</span> paddingTolerance <span class="token operator">&amp;&amp;</span> addBlockPadding<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">long</span> padding <span class="token operator">=</span> blockSize <span class="token operator">-</span> <span class="token punctuation">(</span>start <span class="token operator">%</span> blockSize<span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">byte</span><span class="token punctuation">[</span><span class="token punctuation">]</span> pad <span class="token operator">=</span> <span class="token keyword">new</span> <span class="token class-name">byte</span><span class="token punctuation">[</span><span class="token punctuation">(</span><span class="token keyword">int</span><span class="token punctuation">)</span> Math<span class="token punctuation">.</span><span class="token function">min</span><span class="token punctuation">(</span>HDFS_BUFFER_SIZE<span class="token punctuation">,</span> padding<span class="token punctuation">)</span><span class="token punctuation">]</span><span class="token punctuation">;</span>
        LOG<span class="token punctuation">.</span><span class="token function">info</span><span class="token punctuation">(</span>String<span class="token punctuation">.</span><span class="token function">format</span><span class="token punctuation">(</span><span class="token string">"Padding ORC by %d bytes (&lt;=  %.2f * %d)"</span><span class="token punctuation">,</span> 
            padding<span class="token punctuation">,</span> availRatio<span class="token punctuation">,</span> defaultStripeSize<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        start <span class="token operator">+=</span> padding<span class="token punctuation">;</span>
        <span class="token keyword">while</span> <span class="token punctuation">(</span>padding <span class="token operator">&gt;</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
          <span class="token keyword">int</span> writeLen <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token keyword">int</span><span class="token punctuation">)</span> Math<span class="token punctuation">.</span><span class="token function">min</span><span class="token punctuation">(</span>padding<span class="token punctuation">,</span> pad<span class="token punctuation">.</span>length<span class="token punctuation">)</span><span class="token punctuation">;</span>
          rawWriter<span class="token punctuation">.</span><span class="token function">write</span><span class="token punctuation">(</span>pad<span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> writeLen<span class="token punctuation">)</span><span class="token punctuation">;</span>
          padding <span class="token operator">-=</span> writeLen<span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
        adjustedStripeSize <span class="token operator">=</span> defaultStripeSize<span class="token punctuation">;</span>
      <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>currentStripeSize <span class="token operator">&lt;</span> blockSize
          <span class="token operator">&amp;&amp;</span> <span class="token punctuation">(</span>start <span class="token operator">%</span> blockSize<span class="token punctuation">)</span> <span class="token operator">+</span> currentStripeSize <span class="token operator">&gt;</span> blockSize<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token comment">// even if you don't pad, reset the default stripe size when crossing a</span>
        <span class="token comment">// block boundary</span>
        adjustedStripeSize <span class="token operator">=</span> defaultStripeSize<span class="token punctuation">;</span>
      <span class="token punctuation">}</span>

      <span class="token comment">// 将 streams 中的List&lt;ByteBuffer&gt; output 数据(Write the saved compressed buffers)写出到 rawWriter中</span>
      <span class="token comment">// write out the data streams</span>
      <span class="token keyword">for</span><span class="token punctuation">(</span>Map<span class="token punctuation">.</span>Entry<span class="token generics function"><span class="token punctuation">&lt;</span>StreamName<span class="token punctuation">,</span> BufferedStream<span class="token punctuation">&gt;</span></span> pair<span class="token operator">:</span> streams<span class="token punctuation">.</span><span class="token function">entrySet</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        BufferedStream stream <span class="token operator">=</span> pair<span class="token punctuation">.</span><span class="token function">getValue</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token operator">!</span>stream<span class="token punctuation">.</span><span class="token function">isSuppressed</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
          stream<span class="token punctuation">.</span><span class="token function">spillTo</span><span class="token punctuation">(</span>rawWriter<span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
        stream<span class="token punctuation">.</span><span class="token function">clear</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span>
      <span class="token comment">// write footer 数据</span>
      footer<span class="token punctuation">.</span><span class="token function">writeTo</span><span class="token punctuation">(</span>protobufWriter<span class="token punctuation">)</span><span class="token punctuation">;</span>
      protobufWriter<span class="token punctuation">.</span><span class="token function">flush</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token comment">// protobufWriter包装了writer，并增加了Buffer，所以需要同步flush writer</span>
      writer<span class="token punctuation">.</span><span class="token function">flush</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token keyword">long</span> footerLength <span class="token operator">=</span> rawWriter<span class="token punctuation">.</span><span class="token function">getPos</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">-</span> start <span class="token operator">-</span> dataSize <span class="token operator">-</span> indexSize<span class="token punctuation">;</span>
      OrcProto<span class="token punctuation">.</span>StripeInformation dirEntry <span class="token operator">=</span>
          OrcProto<span class="token punctuation">.</span>StripeInformation<span class="token punctuation">.</span><span class="token function">newBuilder</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
              <span class="token punctuation">.</span><span class="token function">setOffset</span><span class="token punctuation">(</span>start<span class="token punctuation">)</span>
              <span class="token punctuation">.</span><span class="token function">setNumberOfRows</span><span class="token punctuation">(</span>rowsInStripe<span class="token punctuation">)</span>
              <span class="token punctuation">.</span><span class="token function">setIndexLength</span><span class="token punctuation">(</span>indexSize<span class="token punctuation">)</span>
              <span class="token punctuation">.</span><span class="token function">setDataLength</span><span class="token punctuation">(</span>dataSize<span class="token punctuation">)</span>
              <span class="token punctuation">.</span><span class="token function">setFooterLength</span><span class="token punctuation">(</span>footerLength<span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">build</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token comment">// dirEntry 包含stripe 元数据信息</span>
      stripes<span class="token punctuation">.</span><span class="token function">add</span><span class="token punctuation">(</span>dirEntry<span class="token punctuation">)</span><span class="token punctuation">;</span>
      rowCount <span class="token operator">+=</span> rowsInStripe<span class="token punctuation">;</span>
      rowsInStripe <span class="token operator">=</span> <span class="token number">0</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
  <span class="token punctuation">}</span>

  <span class="token annotation punctuation">@Override</span>
  <span class="token keyword">public</span> <span class="token keyword">void</span> <span class="token function">close</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token keyword">throws</span> IOException <span class="token punctuation">{</span>
    <span class="token comment">// remove us from the memory manager so that we don't get any callbacks</span>
    memoryManager<span class="token punctuation">.</span><span class="token function">removeWriter</span><span class="token punctuation">(</span>path<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token comment">// actually close the file</span>
    <span class="token keyword">synchronized</span> <span class="token punctuation">(</span><span class="token keyword">this</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
      <span class="token function">flushStripe</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token comment">// 写入 treeWriter.stripeStatsBuilders 中所有Stripe metadata</span>
      <span class="token keyword">int</span> metadataLength <span class="token operator">=</span> <span class="token function">writeMetadata</span><span class="token punctuation">(</span>rawWriter<span class="token punctuation">.</span><span class="token function">getPos</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token keyword">int</span> footerLength <span class="token operator">=</span> <span class="token function">writeFooter</span><span class="token punctuation">(</span>rawWriter<span class="token punctuation">.</span><span class="token function">getPos</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">-</span> metadataLength<span class="token punctuation">)</span><span class="token punctuation">;</span>
      rawWriter<span class="token punctuation">.</span><span class="token function">writeByte</span><span class="token punctuation">(</span><span class="token function">writePostScript</span><span class="token punctuation">(</span>footerLength<span class="token punctuation">,</span> metadataLength<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      rawWriter<span class="token punctuation">.</span><span class="token function">close</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
  <span class="token punctuation">}</span>
</code></pre>
<h1><a id="String_Dictionary_510"></a>String Dictionary</h1>
<p>RedBlackTree add() 方法</p>
<pre><code class="prism language-java">  <span class="token comment">// RedBlackTree 和 StringRedBlackTree </span>
  <span class="token comment">// TODO 对应Int 类型红黑树的处理  </span>
  <span class="token comment">/**
   * Insert or find a given key in the tree and rebalance the tree correctly.
   * Rebalancing restores the red-black aspect of the tree to maintain the
   * invariants:
   *   1. If a node is red, both of its children are black.
   *   2. Each child of a node has the same black height (the number of black
   *      nodes between it and the leaves of the tree).
   *
   * Inserted nodes are at the leaves and are red, therefore there is at most a
   * violation of rule 1 at the node we just put in. Instead of always keeping
   * the parents, this routine passing down the context.
   *
   * The fix is broken down into 6 cases (1.{1,2,3} and 2.{1,2,3} that are
   * left-right mirror images of each other). See Algorighms by Cormen,
   * Leiserson, and Rivest for the explaination of the subcases.
   *
   * @param node The node that we are fixing right now.
   * @param fromLeft Did we come down from the left?
   * @param parent Nodes' parent
   * @param grandparent Parent's parent
   * @param greatGrandparent Grandparent's parent
   * @return Does parent also need to be checked and/or fixed?
   */</span>
  <span class="token keyword">private</span> <span class="token keyword">boolean</span> <span class="token function">add</span><span class="token punctuation">(</span><span class="token keyword">int</span> node<span class="token punctuation">,</span> <span class="token keyword">boolean</span> fromLeft<span class="token punctuation">,</span> <span class="token keyword">int</span> parent<span class="token punctuation">,</span>
                      <span class="token keyword">int</span> grandparent<span class="token punctuation">,</span> <span class="token keyword">int</span> greatGrandparent<span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token keyword">if</span> <span class="token punctuation">(</span>node <span class="token operator">==</span> NULL<span class="token punctuation">)</span> <span class="token punctuation">{</span>
      <span class="token keyword">if</span> <span class="token punctuation">(</span>root <span class="token operator">==</span> NULL<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        lastAdd <span class="token operator">=</span> <span class="token function">insert</span><span class="token punctuation">(</span>NULL<span class="token punctuation">,</span> NULL<span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        root <span class="token operator">=</span> lastAdd<span class="token punctuation">;</span>
        wasAdd <span class="token operator">=</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
        <span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
        lastAdd <span class="token operator">=</span> <span class="token function">insert</span><span class="token punctuation">(</span>NULL<span class="token punctuation">,</span> NULL<span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
        node <span class="token operator">=</span> lastAdd<span class="token punctuation">;</span>
        wasAdd <span class="token operator">=</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
        <span class="token comment">// connect the new node into the tree</span>
        <span class="token keyword">if</span> <span class="token punctuation">(</span>fromLeft<span class="token punctuation">)</span> <span class="token punctuation">{</span>
          <span class="token function">setLeft</span><span class="token punctuation">(</span>parent<span class="token punctuation">,</span> node<span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
          <span class="token function">setRight</span><span class="token punctuation">(</span>parent<span class="token punctuation">,</span> node<span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
      <span class="token punctuation">}</span>
    <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
      <span class="token keyword">int</span> compare <span class="token operator">=</span> <span class="token function">compareValue</span><span class="token punctuation">(</span>node<span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token keyword">boolean</span> keepGoing<span class="token punctuation">;</span>

      <span class="token comment">// Recurse down to find where the node needs to be added</span>
      <span class="token keyword">if</span> <span class="token punctuation">(</span>compare <span class="token operator">&lt;</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        keepGoing <span class="token operator">=</span> <span class="token function">add</span><span class="token punctuation">(</span><span class="token function">getLeft</span><span class="token punctuation">(</span>node<span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">,</span> node<span class="token punctuation">,</span> parent<span class="token punctuation">,</span> grandparent<span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span>compare <span class="token operator">&gt;</span> <span class="token number">0</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        keepGoing <span class="token operator">=</span> <span class="token function">add</span><span class="token punctuation">(</span><span class="token function">getRight</span><span class="token punctuation">(</span>node<span class="token punctuation">)</span><span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">,</span> node<span class="token punctuation">,</span> parent<span class="token punctuation">,</span> grandparent<span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
        lastAdd <span class="token operator">=</span> node<span class="token punctuation">;</span>
        wasAdd <span class="token operator">=</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
        <span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span>

      <span class="token comment">// we don't need to fix the root (because it is always set to black)</span>
      <span class="token keyword">if</span> <span class="token punctuation">(</span>node <span class="token operator">==</span> root <span class="token operator">||</span> <span class="token operator">!</span>keepGoing<span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
      <span class="token punctuation">}</span>
    <span class="token punctuation">}</span>


    <span class="token comment">// Do we need to fix this node? Only if there are two reds right under each</span>
    <span class="token comment">// other.</span>
    <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">isRed</span><span class="token punctuation">(</span>node<span class="token punctuation">)</span> <span class="token operator">&amp;&amp;</span> <span class="token function">isRed</span><span class="token punctuation">(</span>parent<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
      <span class="token keyword">if</span> <span class="token punctuation">(</span>parent <span class="token operator">==</span> <span class="token function">getLeft</span><span class="token punctuation">(</span>grandparent<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
        <span class="token keyword">int</span> uncle <span class="token operator">=</span> <span class="token function">getRight</span><span class="token punctuation">(</span>grandparent<span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">isRed</span><span class="token punctuation">(</span>uncle<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
          <span class="token comment">// case 1.1</span>
          <span class="token function">setRed</span><span class="token punctuation">(</span>parent<span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token function">setRed</span><span class="token punctuation">(</span>uncle<span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token function">setRed</span><span class="token punctuation">(</span>grandparent<span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token keyword">return</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
          <span class="token keyword">if</span> <span class="token punctuation">(</span>node <span class="token operator">==</span> <span class="token function">getRight</span><span class="token punctuation">(</span>parent<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token comment">// case 1.2</span>
            <span class="token comment">// swap node and parent</span>
            <span class="token keyword">int</span> tmp <span class="token operator">=</span> node<span class="token punctuation">;</span>
            node <span class="token operator">=</span> parent<span class="token punctuation">;</span>
            parent <span class="token operator">=</span> tmp<span class="token punctuation">;</span>
            <span class="token comment">// left-rotate on node</span>
            <span class="token function">setLeft</span><span class="token punctuation">(</span>grandparent<span class="token punctuation">,</span> parent<span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token function">setRight</span><span class="token punctuation">(</span>node<span class="token punctuation">,</span> <span class="token function">getLeft</span><span class="token punctuation">(</span>parent<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token function">setLeft</span><span class="token punctuation">(</span>parent<span class="token punctuation">,</span> node<span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token punctuation">}</span>

          <span class="token comment">// case 1.2 and 1.3</span>
          <span class="token function">setRed</span><span class="token punctuation">(</span>parent<span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token function">setRed</span><span class="token punctuation">(</span>grandparent<span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">;</span>

          <span class="token comment">// right-rotate on grandparent</span>
          <span class="token keyword">if</span> <span class="token punctuation">(</span>greatGrandparent <span class="token operator">==</span> NULL<span class="token punctuation">)</span> <span class="token punctuation">{</span>
            root <span class="token operator">=</span> parent<span class="token punctuation">;</span>
          <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">getLeft</span><span class="token punctuation">(</span>greatGrandparent<span class="token punctuation">)</span> <span class="token operator">==</span> grandparent<span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token function">setLeft</span><span class="token punctuation">(</span>greatGrandparent<span class="token punctuation">,</span> parent<span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
            <span class="token function">setRight</span><span class="token punctuation">(</span>greatGrandparent<span class="token punctuation">,</span> parent<span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token punctuation">}</span>
          <span class="token function">setLeft</span><span class="token punctuation">(</span>grandparent<span class="token punctuation">,</span> <span class="token function">getRight</span><span class="token punctuation">(</span>parent<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token function">setRight</span><span class="token punctuation">(</span>parent<span class="token punctuation">,</span> grandparent<span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
      <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
        <span class="token keyword">int</span> uncle <span class="token operator">=</span> <span class="token function">getLeft</span><span class="token punctuation">(</span>grandparent<span class="token punctuation">)</span><span class="token punctuation">;</span>
        <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">isRed</span><span class="token punctuation">(</span>uncle<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
          <span class="token comment">// case 2.1</span>
          <span class="token function">setRed</span><span class="token punctuation">(</span>parent<span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token function">setRed</span><span class="token punctuation">(</span>uncle<span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token function">setRed</span><span class="token punctuation">(</span>grandparent<span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token keyword">return</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
          <span class="token keyword">if</span> <span class="token punctuation">(</span>node <span class="token operator">==</span> <span class="token function">getLeft</span><span class="token punctuation">(</span>parent<span class="token punctuation">)</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token comment">// case 2.2</span>
            <span class="token comment">// swap node and parent</span>
            <span class="token keyword">int</span> tmp <span class="token operator">=</span> node<span class="token punctuation">;</span>
            node <span class="token operator">=</span> parent<span class="token punctuation">;</span>
            parent <span class="token operator">=</span> tmp<span class="token punctuation">;</span>
            <span class="token comment">// right-rotate on node</span>
            <span class="token function">setRight</span><span class="token punctuation">(</span>grandparent<span class="token punctuation">,</span> parent<span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token function">setLeft</span><span class="token punctuation">(</span>node<span class="token punctuation">,</span> <span class="token function">getRight</span><span class="token punctuation">(</span>parent<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
            <span class="token function">setRight</span><span class="token punctuation">(</span>parent<span class="token punctuation">,</span> node<span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token punctuation">}</span>
          <span class="token comment">// case 2.2 and 2.3</span>
          <span class="token function">setRed</span><span class="token punctuation">(</span>parent<span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token function">setRed</span><span class="token punctuation">(</span>grandparent<span class="token punctuation">,</span> <span class="token boolean">true</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token comment">// left-rotate on grandparent</span>
          <span class="token keyword">if</span> <span class="token punctuation">(</span>greatGrandparent <span class="token operator">==</span> NULL<span class="token punctuation">)</span> <span class="token punctuation">{</span>
            root <span class="token operator">=</span> parent<span class="token punctuation">;</span>
          <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token keyword">if</span> <span class="token punctuation">(</span><span class="token function">getRight</span><span class="token punctuation">(</span>greatGrandparent<span class="token punctuation">)</span> <span class="token operator">==</span> grandparent<span class="token punctuation">)</span> <span class="token punctuation">{</span>
            <span class="token function">setRight</span><span class="token punctuation">(</span>greatGrandparent<span class="token punctuation">,</span> parent<span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
            <span class="token function">setLeft</span><span class="token punctuation">(</span>greatGrandparent<span class="token punctuation">,</span> parent<span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token punctuation">}</span>
          <span class="token function">setRight</span><span class="token punctuation">(</span>grandparent<span class="token punctuation">,</span> <span class="token function">getLeft</span><span class="token punctuation">(</span>parent<span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token function">setLeft</span><span class="token punctuation">(</span>parent<span class="token punctuation">,</span> grandparent<span class="token punctuation">)</span><span class="token punctuation">;</span>
          <span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
        <span class="token punctuation">}</span>
      <span class="token punctuation">}</span>
    <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
      <span class="token keyword">return</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
  <span class="token punctuation">}</span>

  <span class="token comment">/**
   * Add the new key to the tree.
   * @return true if the element is a new one.
   */</span>
  <span class="token keyword">protected</span> <span class="token keyword">boolean</span> <span class="token function">add</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
    <span class="token function">add</span><span class="token punctuation">(</span>root<span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">,</span> NULL<span class="token punctuation">,</span> NULL<span class="token punctuation">,</span> NULL<span class="token punctuation">)</span><span class="token punctuation">;</span>
    <span class="token keyword">if</span> <span class="token punctuation">(</span>wasAdd<span class="token punctuation">)</span> <span class="token punctuation">{</span>
      <span class="token function">setRed</span><span class="token punctuation">(</span>root<span class="token punctuation">,</span> <span class="token boolean">false</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
      <span class="token keyword">return</span> <span class="token boolean">true</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span> <span class="token keyword">else</span> <span class="token punctuation">{</span>
      <span class="token keyword">return</span> <span class="token boolean">false</span><span class="token punctuation">;</span>
    <span class="token punctuation">}</span>
  <span class="token punctuation">}</span>
</code></pre>
<h1><a id="RunLengthIntegerWriterV2_678"></a>RunLengthIntegerWriterV2</h1>
<p>TODO</p>
<h1><a id="_682"></a>参考文献</h1>
<ul>
<li><a href="https://orc.apache.org/talks/" rel="nofollow">ORC Talks</a></li>
<li><a href="https://www.slideshare.net/oom65/orc-andvectorizationhadoopsummit" rel="nofollow">ORC File and Vectorization</a></li>
<li><a href="https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ORC" rel="nofollow">LanguageManual ORC</a></li>
</ul>

                                    </div>
                <link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-60ecaf1f42.css" rel="stylesheet">
                                    <div data-report-view='{"mod":"popu_387","dest":"https://blog.csdn.net/wankunde/article/details/90269042","extend1":"pc","ab":"new"}'></div>
                        
            <div class="person-messagebox">
                <div class="left-message"><a href="https://blog.csdn.net/wankunde">
                    <img src="https://profile.csdnimg.cn/E/3/F/3_wankunde" class="avatar_pic" username='wankunde'>
                </a></div>
                <div class="middle-message">
                                        <div class="title"><span class="tit "><a href="https://blog.csdn.net/wankunde" data-report-click='{"mod":"popu_379","ab":"new"}' target="_blank">wankunde</a></span>
                        <!-- 等级，level -->
                                                <img class="identity-icon" src="https://csdnimg.cn/identity/blog5.png"/>                                            </div>
                    <div class="text"><span>原创文章 229</span><span>获赞 20</span><span>访问量 29万+</span></div>
                </div>
                                <div class="right-message">
                                            <a class="btn btn-sm  bt-button personal-watch" data-report-click='{"mod":"popu_379","ab":"new","extend1":"个人信息未关注"}'>关注</a>
                                                                <a href=https://im.csdn.net/im/main.html?userName=wankunde target="_blank" 
                            class="btn btn-sm bt-button personal-letter">私信
                        </a>
                                    </div>
                            </div>
                        
        </div>
    </article>

</div>

            <div class="hide-article-box hide-article-pos text-center">
            <a class="btn-readmore" id="btn-readmore-zk" data-report-view='{"mod":"popu_376","dest":"https://blog.csdn.net/wankunde/java/article/details/90269042","strategy":"readmore","ab":"new"}' data-report-click='{"mod":"popu_376","dest":"https://blog.csdn.net/wankunde/java/article/details/90269042","strategy":"readmore","ab":"new"}'>
                展开阅读全文
                <svg class="icon chevrondown" aria-hidden="true">
                    <use xlink:href="#csdnc-chevrondown"></use>
                </svg>
            </a>
        </div>   
    
<script>
    $.get("https://blog.csdn.net/wankunde/article/uvc/90269042");
</script>

<div class="more-toolbox" id="toolBarBox">
    <span id="fixedBar"></span>
    <div class="left-toolbox">
        <ul class="toolbox-list">
            <li class="tool-item tool-active is-like" id="is-like"><a>
            <img style="display:none;" id="is-like-imgactive" src="https://csdnimg.cn/release/phoenix/template/new_img/tobarThumbUpactive.png" alt="">
            <img style="display:block;" id="is-like-img" src="https://csdnimg.cn/release/phoenix/template/new_img/thumbUpWhite.png" alt="">   
            <span class="name" id="is-like-span">点赞</span>
            <span id="spanCount" class="count">1</span>
            </a></li>
            <li class="tool-item tool-active tool-item-comment">
                                <a href="#commentBox">
                    <img src="https://csdnimg.cn/release/phoenix/template/new_img/commentWhite.png" alt="">
                    <span class="name">评论</span>
                    <span class="count"></span>
                </a>
            </li>
            <li class="tool-item tool-active tool-QRcode" id="tool-share">
                <a href="javascript:;" data-report-click='{"mod":"1582594662_002","ab":"new"}'>
                    <img src="https://csdnimg.cn/release/phoenix/template/new_img/shareWhite.png" alt="">
                    <span class="name">分享</span>
                </a>
                <div class="QRcode" id="tool-QRcode" style="left:-92%;">
                    <span id="QRcode-close">x</span>
                    <p class="title">
                    海报分享
                    </p>
                    <div id='shareCode'></div>
                    <p>
                    扫一扫，分享海报
                    </p>
                </div>
            </li>
            <li class="tool-item tool-active is-collection ">
                <a href="javascript:;" data-report-click='{"mod":"popu_824","ab":"new"}'>
                    <img id="is-collection-img" style="display:block;" src="https://csdnimg.cn/release/phoenix/template/new_img/collectWhite.png" alt="">
                    <img id="is-collection-imgactive" style="display:none;" src="https://csdnimg.cn/release/phoenix/template/new_img/tobarCollectionActive.png" alt="">
                    <span class="name" id="is-collection">收藏</span>
                    <span class="count get-collection">                    4                    </span>
                </a>
            </li>
            <li class="tool-item tool-active tool-phong" id="tool-phong">
                <a href="javascript:;" data-report-click='{"mod":"popu_831","dest":"","ab":"new"}'>
                    <img src="https://csdnimg.cn/release/phoenix/template/new_img/mobileWhite.png" alt="">
                    <span class="name">
                        手机看
                    </span>
                </a>
                <div class="QRcode" id="tool-QRcode-phong" style="left:-78%;">
                    <p class="title">
                    分享到微信朋友圈
                    </p>
                    <span id="QRcode-phong-close">x</span>
                    <div id='shareQrCode'></div>
                    <p>
                    扫一扫，手机阅读 
                    </p>
                </div>
            </li>
            <!--打赏开始-->
                        <li class="tool-item tool-active tool-reward" id="toolreward">
                
                                    <a  data-report-click='{"mod":"popu_830" "dest":"","ab":"new"}'><img src="https://csdnimg.cn/release/phoenix/template/new_img/rewardWhite.png" alt=""><span class="name">打赏</span></a>
                    
                
                <div id="reward" class="reward-box">
	<p class="rewad-title">打赏<span class="reward-close"><svg t="1567152543821" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10924" xmlns:xlink="http://www.w3.org/1999/xlink" width="12" height="12"><defs><style type="text/css"></style></defs><path d="M512 438.378667L806.506667 143.893333a52.032 52.032 0 1 1 73.6 73.621334L585.621333 512l294.485334 294.485333a52.074667 52.074667 0 0 1-73.6 73.642667L512 585.621333 217.514667 880.128a52.053333 52.053333 0 1 1-73.621334-73.642667L438.378667 512 143.893333 217.514667a52.053333 52.053333 0 1 1 73.621334-73.621334L512 438.378667z" fill="" p-id="10925"></path></svg></span></p>
	<dl>
		<dd><a href="javascript:;"><img src="https://profile.csdnimg.cn/E/3/F/3_wankunde" alt=""></a></dd>
		<dt>
			<p class="blog-name">wankunde</p>
			<p class="blog-discript">“你的鼓励将是我创作的最大动力”</p>
		</dt>
	</dl>
	<div class="money-box">
        			            	<span class="choosed choose_money" data-id="5">5C币</span>
			        							<span class="choose_money" data-id="10">10C币</span>
			        							<span class="choose_money" data-id="20">20C币</span>
			        							<span class="choose_money" data-id="50">50C币</span>
			        							<span class="choose_money" data-id="100">100C币</span>
			        							<span class="choose_money" data-id="200">200C币</span>
			        	</div>
	<div class="sure-box">
		<p class="is-have-money"><a class="reward-sure">确定</a></p>
	</div>
</div>

            </li>
                        <!--打赏结束-->
            <li class="tool-item tool-active tool-more">
                <!-- <a>
                <img src="https://csdnimg.cn/release/phoenix/template/new_img/lookMore.png" alt="">
                </a>
                <ul class="more-box">
                    <li class="item"><a class="article-report">文章举报</a></li>
                </ul> -->
                <a class="article-report">文章举报</a>
            </li>
        </ul>
        <div style="display:flex">
                        <a class="tool-mover-open" id="btn-readmore" style="display: none;"  data-type="0" data-report-view='{"mod":"popu_376","dest":"https://blog.csdn.net/wankunde/java/article/details/90269042","strategy":"packupbar","ab":"new"}' data-report-click='{"mod":"popu_376","dest":"https://blog.csdn.net/wankunde/java/article/details/90269042","strategy":"packupbar","ab":"new"}'>
                <span>收起全文</span>
                <img id="btn-close-img" style="display: block;" src="https://csdnimg.cn/release/phoenix/template/new_img/CommentArrow.png" alt="">
            </a>
         </div>
    </div>  
</div>
<script type=text/javascript crossorigin src="https://csdnimg.cn/release/phoenix/production/qrcode-7c90a92189.min.js"></script>
<script src="//g.csdnimg.cn/??sharewx/1.2.1/sharewx.js" type="text/javascript"></script>
<script type="text/javascript" crossorigin src="https://g.csdnimg.cn/collection-box/1.1.9/collection-box.js"></script>
            <div id="dmp_ad_58" style="width:100%;overflow-x:hidden"><div id="kp_box_58" data-pid="58"><script type="text/javascript">
        (function() {
            var s = "_" + Math.random().toString(36).slice(2);
            document.write('<div style="" id="' + s + '"></div>');
            (window.slotbydup = window.slotbydup || []).push({
                id: "u3501897",
                container: s
            });
        })();
</script>
<!-- 多条广告如下脚本只需引入一次 -->
<script type="text/javascript" src="//cpro.baidustatic.com/cpro/ui/c.js" async="async" defer="defer" >
</script><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?p=58&a=386&c=0&k=&d=1&t=3&u=b6e6b32d0c72416eaf0293662ab05f17"></div></div>            
            <a id="commentBox" name="commentBox"></a>
<div class="comment-box">
	<div class="comment-edit-box d-flex">
		<a id="commentsedit"></a>
		<div class="user-img">
			<a href="javascript:void(0);"  rel="noopener">
				<img class="show_loginbox" src="//g.csdnimg.cn/static/user-img/anonymous-User-img.png">
			</a>
		</div>
		<form id="commentform">
			<img class="comment-sofa-flag" src="https://csdnimg.cn/release/phoenix/template/new_img/commentFlag@2x.png">
			<textarea class="comment-content" name="comment_content" id="comment_content" placeholder="" maxlength="1000"></textarea>
			<div class="opt-box"> <!-- d-flex -->
				<div id="ubbtools" class="add_code">
					<a href="#insertcode" code="code" target="_self"><i class="icon iconfont icon-daima"></i></a>
				</div>
				<input type="hidden" id="comment_replyId" name="comment_replyId">
				<input type="hidden" id="article_id" name="article_id" value="90269042">
				<input type="hidden" id="comment_userId" name="comment_userId" value="">
				<input type="hidden" id="commentId" name="commentId" value="">
				<div class="dropdown" id="myDrap">
					<a class="dropdown-face d-flex align-items-center" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
					<div class="txt-selected text-truncate">添加代码片</div>
					<svg class="icon d-block" aria-hidden="true">
						<use xlink:href="#csdnc-triangledown"></use>
					</svg>
					</a>
					<ul class="dropdown-menu" id="commentCode" aria-labelledby="drop4">
						<li><a data-code="html">HTML/XML</a></li>
						<li><a data-code="objc">objective-c</a></li>
						<li><a data-code="ruby">Ruby</a></li>
						<li><a data-code="php">PHP</a></li>
						<li><a data-code="csharp">C</a></li>
						<li><a data-code="cpp">C++</a></li>
						<li><a data-code="javascript">JavaScript</a></li>
						<li><a data-code="python">Python</a></li>
						<li><a data-code="java">Java</a></li>
						<li><a data-code="css">CSS</a></li>
						<li><a data-code="sql">SQL</a></li>
						<li><a data-code="plain">其它</a></li>
					</ul>
				</div>  
				<div class="right-box">
                                        <span id="tip_comment" class="tip">还能输入<em>1000</em>个字符</span>
					<input type="button" class="btn btn-sm btn-cancel d-none" value="取消回复">
					<a data-report-click='{"mod":"1582594662_003","ab":"new"}'><input type="submit" class="btn btn-sm btn-comment" value="发表评论"></a>
				</div>
			</div>
		</form>
		<input type="button" class="bt-comment-show" value="评论">
	</div>

	<div class="comment-list-container">
		<a id="comments"></a>
		<div class="comment-list-box">
		</div>
		<div id="commentPage" class="pagination-box d-none"></div>
		<div class="opt-box text-center">
			<div class="btn btn-sm btn-link-blue" id="btnMoreComment"></div>
		</div>
	</div>
</div>
            <div class="recommend-box">
                                    	<div class="recommend-item-box recommend-box-ident recommend-download-box clearfix">
		<a href="https://download.csdn.net/download/baidu_41077939/10121385"rel="noopener" target="_blank" rel="noopener" data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-download-BlogCommendFromMachineLearnPai2-1.nonecase\"}","index":"1","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/download.csdn.net\/download\/baidu_41077939\/10121385","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-download-BlogCommendFromMachineLearnPai2-1.nonecase\"}","index":"1","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/download.csdn.net\/download\/baidu_41077939\/10121385","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-download-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-download-BlogCommendFromMachineLearnPai2-1.nonecase' >
			<div class="content clearfix">
				<div class="">
					<h4 class="text-truncate oneline clearfix">
						<!-- <span class="recommend-article-type">下载</span> -->
						写<em>ORC</em> <em>格式</em><em>文件</em>，HIVE 工具类					</h4>
					<span class="data float-right">11-16</span>
				</div>
			</div>
		</a>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/qiaojialin">	
					<span class="blog_title"> 乔的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">05-17</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				319</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/qiaojialin/article/details/90300293" target="_blank"  rel="noopener" title="ORC 查询流程"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase\"}","index":"2","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qiaojialin\/article\/details\/90300293","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase\"}","index":"2","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qiaojialin\/article\/details\/90300293","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				<em>ORC</em> 查询流程			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/qiaojialin/article/details/90300293" target="_blank"  rel="noopener" title="ORC 查询流程"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase\"}","index":"2","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qiaojialin\/article\/details\/90300293","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase' 			>
				ORC 文件格式ORC 文件分成多个 Stripe，每个 Stripe 里包括这个文件所有列的一部分数据，每个 Stripe 中的各个列的点数都一样，是可以对齐的。只在 RowGroup 层做过滤，每...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_33810302">	
					<span class="blog_title"> weixin_33810302的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">10-16</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				349</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/weixin_33810302/article/details/85947779" target="_blank"  rel="noopener" title="大数据：Hive - ORC 文件存储格式"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase\"}","index":"3","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_33810302\/article\/details\/85947779","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase\"}","index":"3","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_33810302\/article\/details\/85947779","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				大<em>数据</em>：Hive - <em>ORC</em> <em>文件</em><em>存储</em><em>格式</em>			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/weixin_33810302/article/details/85947779" target="_blank"  rel="noopener" title="大数据：Hive - ORC 文件存储格式"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase\"}","index":"3","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_33810302\/article\/details\/85947779","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase' 			>
				一、ORC File文件结构　　ORC的全称是(Optimized Row Columnar)，ORC文件格式是一种Hadoop生态圈中的列式存储格式，它的产生早在2013年初，最初产生自Apache...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/qq403580298">	
					<span class="blog_title"> hxh的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">12-17</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1588</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/qq403580298/article/details/85045482" target="_blank"  rel="noopener" title="ORC文件格式"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase\"}","index":"4","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qq403580298\/article\/details\/85045482","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase\"}","index":"4","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qq403580298\/article\/details\/85045482","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				<em>ORC</em><em>文件</em><em>格式</em>			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/qq403580298/article/details/85045482" target="_blank"  rel="noopener" title="ORC文件格式"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase\"}","index":"4","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qq403580298\/article\/details\/85045482","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase' 			>
				ORC文件格式https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ORC在Hive版本0.11.0中引入。所述***优化行柱...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_59" data-pid="59"><script src='https://securepubads.g.doubleclick.net/tag/js/gpt.js'>
  googletag.pubads().definePassback('/162717810/CN-csdn.net/multiplex', ['fluid']).display();
</script><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?p=59&a=2235&c=0&k=&d=1&t=3&u=87b553fbebb142ab9e86d618016cd387"></div></div><div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/javastart">	
					<span class="blog_title"> 张伟的专栏</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-27</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/javastart/article/details/50992851" target="_blank"  rel="noopener" title="Hive数据导入方案—使用ORC格式存储hive数据"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase\"}","index":"5","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/javastart\/article\/details\/50992851","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase\"}","index":"5","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/javastart\/article\/details\/50992851","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				Hive<em>数据</em>导入方案—使用<em>ORC</em><em>格式</em><em>存储</em>hive<em>数据</em>			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/javastart/article/details/50992851" target="_blank"  rel="noopener" title="Hive数据导入方案—使用ORC格式存储hive数据"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase\"}","index":"5","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/javastart\/article\/details\/50992851","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-5.nonecase' 			>
				目的：将上网日志导入到hive中，要求速度快，压缩高，查询快，表易维护。推荐使用ORC格式的表存储数据思路：因为在hive指定RCFile格式的表，不能直接load数据，只能通过textfile表进行...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/m0_37657725">	
					<span class="blog_title"> m0_37657725的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">08-04</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1326</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/m0_37657725/article/details/98354168" target="_blank"  rel="noopener" title="Hive文件格式-textfile，sequencefile，rcfile，orcfile， Parquet"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.nonecase\"}","index":"6","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/m0_37657725\/article\/details\/98354168","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.nonecase\"}","index":"6","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/m0_37657725\/article\/details\/98354168","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				Hive<em>文件</em><em>格式</em>-textfile，sequencefile，rcfile，<em>orc</em>file， Parquet			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/m0_37657725/article/details/98354168" target="_blank"  rel="noopener" title="Hive文件格式-textfile，sequencefile，rcfile，orcfile， Parquet"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.nonecase\"}","index":"6","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/m0_37657725\/article\/details\/98354168","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.nonecase' 			>
				目录概述hive文件存储格式包括以下几类一、TEXTFILE二、SEQUENCEFILE三、RCFile文件格式概述历史RCFile使用基于行存储的优点和缺点基于列存储的优点和缺点源码分析1. Wri...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/lw277232240">	
					<span class="blog_title"> 旺旺的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-26</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				832</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/lw277232240/article/details/88814146" target="_blank"  rel="noopener" title="采集kafka数据以orc格式写往hdfs"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.nonecase\"}","index":"7","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/lw277232240\/article\/details\/88814146","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.nonecase\"}","index":"7","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/lw277232240\/article\/details\/88814146","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				采集kafka<em>数据</em>以<em>orc</em><em>格式</em>写往hdfs			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/lw277232240/article/details/88814146" target="_blank"  rel="noopener" title="采集kafka数据以orc格式写往hdfs"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.nonecase\"}","index":"7","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/lw277232240\/article\/details\/88814146","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-7.nonecase' 			>
				1.需求，从kafka采集数据然后以orc格式的文件写往hdfs。然后hdfs上的表以orc格式存储，然后绑定分区可以查询出数据。2.解决需求  1） 使用flume 采集。写完hdfs。但是无法写o...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_42001459">	
					<span class="blog_title"> weixin_42001459的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">05-09</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				3217</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/weixin_42001459/article/details/80253651" target="_blank"  rel="noopener" title="Java读取ORC文件的内容"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.nonecase\"}","index":"8","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_42001459\/article\/details\/80253651","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.nonecase\"}","index":"8","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_42001459\/article\/details\/80253651","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				Java读取<em>ORC</em><em>文件</em>的内容			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/weixin_42001459/article/details/80253651" target="_blank"  rel="noopener" title="Java读取ORC文件的内容"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.nonecase\"}","index":"8","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_42001459\/article\/details\/80253651","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-8.nonecase' 			>
				import java.util.List;import java.util.Properties;import org.apache.hadoop.conf.Configuration;import...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/u013411339">	
					<span class="blog_title"> 王知无的Java到大数据之路～</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">01-13</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				53</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/u013411339/article/details/103966913" target="_blank"  rel="noopener" title="ORC文件存储格式的深入探究"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-9.nonecase\"}","index":"9","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/u013411339\/article\/details\/103966913","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-9.nonecase\"}","index":"9","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/u013411339\/article\/details\/103966913","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-9.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-9.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				<em>ORC</em><em>文件</em><em>存储</em><em>格式</em>的深入探究			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/u013411339/article/details/103966913" target="_blank"  rel="noopener" title="ORC文件存储格式的深入探究"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-9.nonecase\"}","index":"9","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/u013411339\/article\/details\/103966913","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-9.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-9.nonecase' 			>
				因为生病，另外还在做牙齿的根管治疗，痛不欲生，短更一篇。年前都在梳理《大数据成神之路》的目录还有内容，另外Flink的公开课程也在规划大纲和目录。不知道我在说什么，看一下这里《2020年......			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box recommend-recommend-box"><div id="kp_box_60" data-pid="60"><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<ins class="adsbygoogle"
     style="display:block"
     data-ad-format="fluid"
     data-ad-layout-key="-hd-1q+4c-25+a"
     data-ad-client="ca-pub-1076724771190722"
     data-ad-slot="5760803113"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?p=60&a=731&c=0&k=&d=1&t=3&u=ef9b72e9301f4a4295620be969bcb2a3"></div></div><div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/zhixingheyi_tian">	
					<span class="blog_title"> zhixingheyi_tian的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">10-12</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				109</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/zhixingheyi_tian/article/details/102518895" target="_blank"  rel="noopener" title="ORC文件格式分析"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-10.nonecase\"}","index":"10","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/zhixingheyi_tian\/article\/details\/102518895","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-10.nonecase\"}","index":"10","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/zhixingheyi_tian\/article\/details\/102518895","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-10.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-10.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				<em>ORC</em><em>文件</em><em>格式</em>分析			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/zhixingheyi_tian/article/details/102518895" target="_blank"  rel="noopener" title="ORC文件格式分析"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-10.nonecase\"}","index":"10","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/zhixingheyi_tian\/article\/details\/102518895","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-10.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-10.nonecase' 			>
				ORC provides three level of indexes within each file:file level - statistics about the values in eac...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_34203426">	
					<span class="blog_title"> weixin_34203426的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">09-05</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				278</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/weixin_34203426/article/details/86013927" target="_blank"  rel="noopener" title="ORC 文件存储格式"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-11.nonecase\"}","index":"11","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_34203426\/article\/details\/86013927","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-11.nonecase\"}","index":"11","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_34203426\/article\/details\/86013927","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-11.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-11.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				<em>ORC</em> <em>文件</em><em>存储</em><em>格式</em>			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/weixin_34203426/article/details/86013927" target="_blank"  rel="noopener" title="ORC 文件存储格式"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-11.nonecase\"}","index":"11","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_34203426\/article\/details\/86013927","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-11.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-11.nonecase' 			>
				1、orc列式存储概念a）列式存储：orc并不是纯粹的列式存储，也是先基于行对数据表进行分组（行组），然后对行组进行列式存储。b）查询数据的时候不需要扫描全部数据（磁盘IO），只需查询指定列即可。c）...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/CSDNedu">	
					<span class="blog_title"> CSDN学院</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">02-26</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				7万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/CSDNedu/article/details/104521554" target="_blank"  rel="noopener" title="完了！Python黄了！ 80%的程序员：痛快！你怎么看？"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-12.nonecase\"}","index":"12","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/CSDNedu\/article\/details\/104521554","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-12.nonecase\"}","index":"12","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/CSDNedu\/article\/details\/104521554","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-12.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-12.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				完了！Python黄了！ 80%的程序员：痛快！你怎么看？			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/CSDNedu/article/details/104521554" target="_blank"  rel="noopener" title="完了！Python黄了！ 80%的程序员：痛快！你怎么看？"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-12.nonecase\"}","index":"12","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/CSDNedu\/article\/details\/104521554","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-12.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-12.nonecase' 			>
				Python真的万能语言？在我的一个朋友看来，他坚信 Python 可以做任何事情。其实我是不服的，因为我在某网站看到有条评论：Python将要黄了！事实究竟如何？这篇文章会揭开这个黑幕，让程序员看清...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_30279671">	
					<span class="blog_title"> weixin_30279671的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">05-31</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				104</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/weixin_30279671/article/details/98440555" target="_blank"  rel="noopener" title="Hive-ORC文件存储格式"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-13.nonecase\"}","index":"13","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_30279671\/article\/details\/98440555","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-13.nonecase\"}","index":"13","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_30279671\/article\/details\/98440555","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-13.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-13.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				Hive-<em>ORC</em><em>文件</em><em>存储</em><em>格式</em>			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/weixin_30279671/article/details/98440555" target="_blank"  rel="noopener" title="Hive-ORC文件存储格式"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-13.nonecase\"}","index":"13","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_30279671\/article\/details\/98440555","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-13.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-13.nonecase' 			>
				　　ORC文件格式是从Hive-0.11版本开始的。关于ORC文件格式的官方文档，以及基于官方文档的翻译内容这里就不赘述了，有兴趣的可以仔细研究了解一下。本文接下来根据论文《Major Technic...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/zhouwj_1990">	
					<span class="blog_title"> zhouwj_1990的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">12-05</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				649</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/zhouwj_1990/article/details/103407749" target="_blank"  rel="noopener" title="redis测试一亿的数据写入占多少内存"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-14.nonecase\"}","index":"14","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/zhouwj_1990\/article\/details\/103407749","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-14.nonecase\"}","index":"14","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/zhouwj_1990\/article\/details\/103407749","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-14.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-14.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				redis测试一亿的<em>数据</em><em>写入</em>占多少内存			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/zhouwj_1990/article/details/103407749" target="_blank"  rel="noopener" title="redis测试一亿的数据写入占多少内存"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-14.nonecase\"}","index":"14","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/zhouwj_1990\/article\/details\/103407749","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-14.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-14.nonecase' 			>
				key是32字节。Varle 是50-200之间的随机数#!/usr/bin/env python# -*- coding: utf-8 -*-import redis import random i...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/lilyjoke">	
					<span class="blog_title"> lilyjoke的专栏</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">07-17</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				280</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/lilyjoke/article/details/81081985" target="_blank"  rel="noopener" title="orc文件写入+GC调优+java多线程+java静态类"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-15.nonecase\"}","index":"15","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/lilyjoke\/article\/details\/81081985","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-15.nonecase\"}","index":"15","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/lilyjoke\/article\/details\/81081985","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-15.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-15.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				<em>orc</em><em>文件</em><em>写入</em>+GC调优+java多线程+java静态类			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/lilyjoke/article/details/81081985" target="_blank"  rel="noopener" title="orc文件写入+GC调优+java多线程+java静态类"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-15.nonecase\"}","index":"15","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/lilyjoke\/article\/details\/81081985","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-15.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-15.nonecase' 			>
				好久没总结，说来惭愧，做了4年的开发，但是对于基础的概念总结还是很不完善，最近有可以写的东西，先做个引子和总结，等有空来写。1. flume自定义sink，用于写orc文件，直接挂到hive表上，相当...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/longshenlmj">	
					<span class="blog_title"> longshenlmj的专栏</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">06-17</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				3万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/longshenlmj/article/details/51702343" target="_blank"  rel="noopener" title="hive表的存储格式; ORC格式的使用"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-16.nonecase\"}","index":"16","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/longshenlmj\/article\/details\/51702343","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-16.nonecase\"}","index":"16","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/longshenlmj\/article\/details\/51702343","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-16.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-16.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				hive表的<em>存储</em><em>格式</em>; <em>ORC</em><em>格式</em>的使用			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/longshenlmj/article/details/51702343" target="_blank"  rel="noopener" title="hive表的存储格式; ORC格式的使用"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-16.nonecase\"}","index":"16","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/longshenlmj\/article\/details\/51702343","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-16.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-16.nonecase' 			>
				hive表的源文件存储格式有几类：   1、TEXTFILE  默认格式，建表时不指定默认为这个格式，导入数据时会直接把数据文件拷贝到hdfs上不进行处理。源文件可以直接通过hadoop fs -ca...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/u012841509">	
					<span class="blog_title"> Lv的程序人生</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-01</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1367</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/u012841509/article/details/79410779" target="_blank"  rel="noopener" title="记一次hive写入orc文件失败"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-17.nonecase\"}","index":"17","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/u012841509\/article\/details\/79410779","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-17.nonecase\"}","index":"17","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/u012841509\/article\/details\/79410779","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-17.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-17.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				记一次hive<em>写入</em><em>orc</em><em>文件</em>失败			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/u012841509/article/details/79410779" target="_blank"  rel="noopener" title="记一次hive写入orc文件失败"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-17.nonecase\"}","index":"17","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/u012841509\/article\/details\/79410779","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-17.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-17.nonecase' 			>
				报错信息为map端的orc写入相关错误，现设置如下参数解决：set hive.exec.orc.default.compress.size=8192;set mapreduce.map.memory....			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/u011163372">	
					<span class="blog_title"> u011163372的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">05-15</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				5629</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/u011163372/article/details/72179736" target="_blank"  rel="noopener" title="ORC格式文件读取"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-18.nonecase\"}","index":"18","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/u011163372\/article\/details\/72179736","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-18.nonecase\"}","index":"18","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/u011163372\/article\/details\/72179736","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-18.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-18.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				<em>ORC</em><em>格式</em><em>文件</em>读取			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/u011163372/article/details/72179736" target="_blank"  rel="noopener" title="ORC格式文件读取"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-18.nonecase\"}","index":"18","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/u011163372\/article\/details\/72179736","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-18.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-18.nonecase' 			>
				微信搜索bigdata029 | 邀请体验：数阅–数据管理、OLAP分析与可视化平台 | 订阅本站 | 赞助作者：赞助作者 Java API 读取Hive Orc文件  Hadoop   lxw123...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/lds_include">	
					<span class="blog_title"> lds_include</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">07-01</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				989</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/lds_include/article/details/94382085" target="_blank"  rel="noopener" title="hive的存储格式TextFile、RCFile、ORC"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-19.nonecase\"}","index":"19","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/lds_include\/article\/details\/94382085","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-19.nonecase\"}","index":"19","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/lds_include\/article\/details\/94382085","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-19.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-19.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				hive的<em>存储</em><em>格式</em>TextFile、RCFile、<em>ORC</em>			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/lds_include/article/details/94382085" target="_blank"  rel="noopener" title="hive的存储格式TextFile、RCFile、ORC"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-19.nonecase\"}","index":"19","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/lds_include\/article\/details\/94382085","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-19.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-19.nonecase' 			>
				hived的存储格式TextFile、RCFile、ORC说明：所谓的存储格式就是hive的数据在hdfs上存放的具体方式；通过下面的文件我们看出hive的存储格式是一共有六种，每一种都是由自己的规则...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/wankunde">	
					<span class="blog_title"> 小万万的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">10-20</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				92</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/wankunde/article/details/102641534" target="_blank"  rel="noopener" title="Delta File Fomat 3:Delta数据文件的写入"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-20.nonecase\"}","index":"20","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/wankunde\/article\/details\/102641534","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-20.nonecase\"}","index":"20","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/wankunde\/article\/details\/102641534","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-20.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-20.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				Delta File Fomat 3:Delta<em>数据</em><em>文件</em>的<em>写入</em>			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/wankunde/article/details/102641534" target="_blank"  rel="noopener" title="Delta File Fomat 3:Delta数据文件的写入"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-20.nonecase\"}","index":"20","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/wankunde\/article\/details\/102641534","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-20.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-20.nonecase' 			>
				文章目录DataSource回顾 及 DeltaDataSource 说明SaveIntoDataSourceCommand 对象的生成Spark Run Command 对象DataSource回顾...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/liuzhoulong">	
					<span class="blog_title"> 数据人生</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">10-27</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				2894</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/liuzhoulong/article/details/49448447" target="_blank"  rel="noopener" title="hive ORC 文件存储格式"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-21.nonecase\"}","index":"21","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/liuzhoulong\/article\/details\/49448447","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-21.nonecase\"}","index":"21","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/liuzhoulong\/article\/details\/49448447","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-21.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-21.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				hive <em>ORC</em> <em>文件</em><em>存储</em><em>格式</em>			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/liuzhoulong/article/details/49448447" target="_blank"  rel="noopener" title="hive ORC 文件存储格式"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-21.nonecase\"}","index":"21","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/liuzhoulong\/article\/details\/49448447","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-21.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-21.nonecase' 			>
				ORC file format，它的全名是Optimized Row Columnar (ORC)  file format。使用ORC文件格式提升Hive读、写与处理数据的性能。    存储方式为数...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/zhaolq1024">	
					<span class="blog_title"> zhaolq1024的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-14</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				2052</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/zhaolq1024/article/details/88548837" target="_blank"  rel="noopener" title="hive存储格式textfile到orc"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-22.nonecase\"}","index":"22","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/zhaolq1024\/article\/details\/88548837","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-22.nonecase\"}","index":"22","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/zhaolq1024\/article\/details\/88548837","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-22.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-22.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				hive<em>存储</em><em>格式</em>textfile到<em>orc</em>			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/zhaolq1024/article/details/88548837" target="_blank"  rel="noopener" title="hive存储格式textfile到orc"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-22.nonecase\"}","index":"22","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/zhaolq1024\/article\/details\/88548837","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-22.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-22.nonecase' 			>
				hive默认存储格式为textfile，orc是一种列式存储格式，读，写，处理数据上比textfile更有优势,更节省磁盘空间由于orc的表不能直接load导入，所以我们仍需要textfile的表将t...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/Dark_Scope">	
					<span class="blog_title"> DarkScope从这里开始</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">07-18</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				11万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/Dark_Scope/article/details/8880547" target="_blank"  rel="noopener" title="趣写算法系列之--匈牙利算法"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-23.nonecase\"}","index":"23","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/Dark_Scope\/article\/details\/8880547","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-23.nonecase\"}","index":"23","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/Dark_Scope\/article\/details\/8880547","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-23.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-23.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				趣写算法系列之--匈牙利算法			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/Dark_Scope/article/details/8880547" target="_blank"  rel="noopener" title="趣写算法系列之--匈牙利算法"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-23.nonecase\"}","index":"23","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/Dark_Scope\/article\/details\/8880547","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-23.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-23.nonecase' 			>
				【书本上的算法往往讲得非常复杂，我和我的朋友计划用一些简单通俗的例子来描述算法的流程，这只是刚开始的样稿，其实我们也才刚开始】匈牙利算法是由匈牙利数学家Edmonds于1965年提出，因而得名。匈牙利...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/u010990043">	
					<span class="blog_title"> u010990043的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">09-25</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				3259</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/u010990043/article/details/82842974" target="_blank"  rel="noopener" title="spark  ORC原理"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-24.nonecase\"}","index":"24","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/u010990043\/article\/details\/82842974","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-24.nonecase\"}","index":"24","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/u010990043\/article\/details\/82842974","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-24.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-24.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				spark  <em>ORC</em>原理			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/u010990043/article/details/82842974" target="_blank"  rel="noopener" title="spark  ORC原理"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-24.nonecase\"}","index":"24","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/u010990043\/article\/details\/82842974","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-24.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-24.nonecase' 			>
				orc历史  ORC的全称是(Optimized Row Columnar)，ORC文件格式是一种Hadoop生态圈中的列式存储格式，它的产生早在2013年初，最初产生自Apache Hive，用于降...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/qiaojialin">	
					<span class="blog_title"> 乔的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">04-06</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1242</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/qiaojialin/article/details/89056733" target="_blank"  rel="noopener" title="ORC 文件层 API 读写"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-25.nonecase\"}","index":"25","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qiaojialin\/article\/details\/89056733","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-25.nonecase\"}","index":"25","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qiaojialin\/article\/details\/89056733","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-25.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-25.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				<em>ORC</em> <em>文件</em>层 API 读写			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/qiaojialin/article/details/89056733" target="_blank"  rel="noopener" title="ORC 文件层 API 读写"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-25.nonecase\"}","index":"25","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qiaojialin\/article\/details\/89056733","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-25.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-25.nonecase' 			>
				参考：https://codecheese.wordpress.com/2017/06/13/reading-and-writing-orc-files-using-vectorized-row-ba...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/wankunde">	
					<span class="blog_title"> 小万万的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">07-02</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				668</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/wankunde/article/details/94463268" target="_blank"  rel="noopener" title="Griffin 数据管理任务的SQL和原理"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-26.nonecase\"}","index":"26","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/wankunde\/article\/details\/94463268","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-26.nonecase\"}","index":"26","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/wankunde\/article\/details\/94463268","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-26.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-26.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				Griffin <em>数据</em>管理任务的SQL和原理			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/wankunde/article/details/94463268" target="_blank"  rel="noopener" title="Griffin 数据管理任务的SQL和原理"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-26.nonecase\"}","index":"26","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/wankunde\/article\/details\/94463268","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-26.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-26.nonecase' 			>
				文章目录accuracycompletenessdistincttimelinessuniquenessprofilingspark-sqlpre.procaccuracy任务内容 : 通过两个表的J...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/nysyxxg">	
					<span class="blog_title"> Make progress step by step everyday.....</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">08-18</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				5362</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/nysyxxg/article/details/52241848" target="_blank"  rel="noopener" title="Java写本地ORC文件(Hive2 API)"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-27.nonecase\"}","index":"27","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/nysyxxg\/article\/details\/52241848","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-27.nonecase\"}","index":"27","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/nysyxxg\/article\/details\/52241848","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-27.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-27.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				Java写本地<em>ORC</em><em>文件</em>(Hive2 API)			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/nysyxxg/article/details/52241848" target="_blank"  rel="noopener" title="Java写本地ORC文件(Hive2 API)"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-27.nonecase\"}","index":"27","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/nysyxxg\/article\/details\/52241848","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-27.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-27.nonecase' 			>
				Java写本地ORC文件(Hive2 API)Hive2.0以后，使用了新的API来读写ORC文件（https://orc.apache.org）。本文中的代码，在本地使用Java程序生成ORC文件，...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/wankunde">	
					<span class="blog_title"> 小万万的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">02-18</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				79</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/wankunde/article/details/83556777" target="_blank"  rel="noopener" title="使用JPCAP实现Java中的数据链路层控制"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-28.nonecase\"}","index":"28","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/wankunde\/article\/details\/83556777","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-28.nonecase\"}","index":"28","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/wankunde\/article\/details\/83556777","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-28.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-28.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				使用JPCAP实现Java中的<em>数据</em>链路层控制			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/wankunde/article/details/83556777" target="_blank"  rel="noopener" title="使用JPCAP实现Java中的数据链路层控制"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-28.nonecase\"}","index":"28","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/wankunde\/article\/details\/83556777","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-28.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-28.nonecase' 			>
				　　一．JPCAP简介　　众所周知，JAVA语言虽然在TCP/UDP传输方面给予了良好的定义，但对于网络层以下的控制，却是无能为力的。JPCAP扩展包弥补了这一点。　　JPCAP实际上并非一个真正去实...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/hk10066">	
					<span class="blog_title"> hk10066的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">05-11</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/hk10066/article/details/80277459" target="_blank"  rel="noopener" title="java写入数据到文件"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-29.nonecase\"}","index":"29","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/hk10066\/article\/details\/80277459","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-29.nonecase\"}","index":"29","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/hk10066\/article\/details\/80277459","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-29.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-29.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				java<em>写入</em><em>数据</em>到<em>文件</em>			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/hk10066/article/details/80277459" target="_blank"  rel="noopener" title="java写入数据到文件"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-29.nonecase\"}","index":"29","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/hk10066\/article\/details\/80277459","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-29.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-29.nonecase' 			>
				以字节流的形式向文件写入数据 中的例子，当666.txt不存在的时候，是会自动创建666.txt文件的。但是，如果是写入数据到E:/file/LOL/666.txt，而目录LOL又不存在的话，就会抛出...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/qq_37372196">	
					<span class="blog_title"> 驭之风</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">05-06</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/qq_37372196/article/details/89863593" target="_blank"  rel="noopener" title="基于Python的OCR实现"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-30.nonecase\"}","index":"30","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qq_37372196\/article\/details\/89863593","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-30.nonecase\"}","index":"30","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qq_37372196\/article\/details\/89863593","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-30.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-30.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				基于Python的OCR实现			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/qq_37372196/article/details/89863593" target="_blank"  rel="noopener" title="基于Python的OCR实现"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-30.nonecase\"}","index":"30","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qq_37372196\/article\/details\/89863593","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-30.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-30.nonecase' 			>
				摘要：近几天在做一个东西，其中需要对图像中的文字进行识别，看了前辈们的文章，找到两个较简单的方法：使用python的pytesseract库和调用百度AI平台接口。写下这篇文章做一个比较简短的记录和学...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/qq_31807385">	
					<span class="blog_title"> isea_you's blog</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">12-06</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/qq_31807385/article/details/84796880" target="_blank"  rel="noopener" title="Hive文件存储格式（TEXTFILE 、ORC、PARQUET三者的存储格式的压缩对比和查询速度对比）"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-31.nonecase\"}","index":"31","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qq_31807385\/article\/details\/84796880","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-31.nonecase\"}","index":"31","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qq_31807385\/article\/details\/84796880","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-31.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-31.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				Hive<em>文件</em><em>存储</em><em>格式</em>（TEXTFILE 、<em>ORC</em>、PARQUET三者的<em>存储</em><em>格式</em>的压缩对比和查询速度对比）			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/qq_31807385/article/details/84796880" target="_blank"  rel="noopener" title="Hive文件存储格式（TEXTFILE 、ORC、PARQUET三者的存储格式的压缩对比和查询速度对比）"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-31.nonecase\"}","index":"31","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qq_31807385\/article\/details\/84796880","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-31.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-31.nonecase' 			>
				综述：HIve的文件存储格式有四种：TEXTFILE 、SEQUENCEFILE、ORC、PARQUET，前面两种是行式存储，后面两种是列式存储；所谓的存储格式就是在Hive建表的时候指定的将表中的数...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/wankunde">	
					<span class="blog_title"> 小万万的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">01-29</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1118</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/wankunde/article/details/79194820" target="_blank"  rel="noopener" title="Hadoop audit"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-32.nonecase\"}","index":"32","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/wankunde\/article\/details\/79194820","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-32.nonecase\"}","index":"32","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/wankunde\/article\/details\/79194820","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-32.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-32.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				Hadoop audit			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/wankunde/article/details/79194820" target="_blank"  rel="noopener" title="Hadoop audit"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-32.nonecase\"}","index":"32","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/wankunde\/article\/details\/79194820","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-32.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-32.nonecase' 			>
				Hadoop audit 配置修改log4j.properties ## hdfs audit logging#hdfs.audit.logger=INFO,NullAppenderhdfs.audi...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/tobyqiu">	
					<span class="blog_title"> tobyqiu的专栏</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">04-22</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				59</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/tobyqiu/article/details/84552287" target="_blank"  rel="noopener" title="ORC File 翻译"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-33.nonecase\"}","index":"33","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/tobyqiu\/article\/details\/84552287","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-33.nonecase\"}","index":"33","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/tobyqiu\/article\/details\/84552287","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-33.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-33.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				<em>ORC</em> File 翻译			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/tobyqiu/article/details/84552287" target="_blank"  rel="noopener" title="ORC File 翻译"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-33.nonecase\"}","index":"33","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/tobyqiu\/article\/details\/84552287","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-33.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-33.nonecase' 			>
				转帖翻译 http://www.iteblog.com/archives/1014原文 https://cwiki.apache.org/confluence/display/Hive/Languag...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/bhq2010">	
					<span class="blog_title"> BHQ的技术学习</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">07-28</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1340</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/bhq2010/article/details/76274246" target="_blank"  rel="noopener" title="ORC源码阅读(2) - OrcProto"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-34.nonecase\"}","index":"34","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/bhq2010\/article\/details\/76274246","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-34.nonecase\"}","index":"34","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/bhq2010\/article\/details\/76274246","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-34.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-34.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				<em>ORC</em>源码阅读(2) - <em>Orc</em>Proto			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/bhq2010/article/details/76274246" target="_blank"  rel="noopener" title="ORC源码阅读(2) - OrcProto"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-34.nonecase\"}","index":"34","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/bhq2010\/article\/details\/76274246","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-34.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-34.nonecase' 			>
				读了mapreduce module之后，对orc的代码有了大概的了解，其实顺着RecordReader、Write和OrcFile、OrcStruct往下读就会有很多和protocol buffer...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/u012965373">	
					<span class="blog_title"> 杨鑫newlife的专栏</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">06-02</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				2305</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/u012965373/article/details/72834392" target="_blank"  rel="noopener" title="Hive学习笔记 --- ORCFile介绍"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-35.nonecase\"}","index":"35","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/u012965373\/article\/details\/72834392","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-35.nonecase\"}","index":"35","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/u012965373\/article\/details\/72834392","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-35.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-35.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				Hive学习笔记 --- <em>ORC</em>File介绍			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/u012965373/article/details/72834392" target="_blank"  rel="noopener" title="Hive学习笔记 --- ORCFile介绍"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-35.nonecase\"}","index":"35","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/u012965373\/article\/details\/72834392","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-35.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-35.nonecase' 			>
				Hive学习笔记 --- ORCFile介绍			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/narata1">	
					<span class="blog_title"> narata1的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">02-21</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				794</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/narata1/article/details/87863375" target="_blank"  rel="noopener" title="读取本地ORC文件，返回OrcStruct列表"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-36.nonecase\"}","index":"36","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/narata1\/article\/details\/87863375","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-36.nonecase\"}","index":"36","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/narata1\/article\/details\/87863375","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-36.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-36.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				读取本地<em>ORC</em><em>文件</em>，返回<em>Orc</em>Struct列表			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/narata1/article/details/87863375" target="_blank"  rel="noopener" title="读取本地ORC文件，返回OrcStruct列表"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-36.nonecase\"}","index":"36","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/narata1\/article\/details\/87863375","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-36.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-36.nonecase' 			>
				import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoo...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/harvic880925">	
					<span class="blog_title"> 启舰</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-23</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				3万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/harvic880925/article/details/105021956" target="_blank"  rel="noopener" title="程序员毕业去大公司好还是小公司好？"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-37.nonecase\"}","index":"37","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/harvic880925\/article\/details\/105021956","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-37.nonecase\"}","index":"37","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/harvic880925\/article\/details\/105021956","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-37.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-37.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				程序员毕业去大公司好还是小公司好？			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/harvic880925/article/details/105021956" target="_blank"  rel="noopener" title="程序员毕业去大公司好还是小公司好？"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-37.nonecase\"}","index":"37","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/harvic880925\/article\/details\/105021956","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-37.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-37.nonecase' 			>
				虽然大公司并不是人人都能进，但我仍建议还未毕业的同学，尽力地通过校招向大公司挤，但凡挤进去，你这一生会容易很多。大公司哪里好？没能进大公司怎么办？答案都在这里了,记得帮我点赞哦。目录：技术氛围	内部晋...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/shenjian58">	
					<span class="blog_title"> shenjian58的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-22</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				2万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/shenjian58/article/details/105039655" target="_blank"  rel="noopener" title="男生更看重女生的身材脸蛋，还是思想？"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-38.nonecase\"}","index":"38","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/shenjian58\/article\/details\/105039655","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-38.nonecase\"}","index":"38","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/shenjian58\/article\/details\/105039655","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-38.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-38.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				男生更看重女生的身材脸蛋，还是思想？			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/shenjian58/article/details/105039655" target="_blank"  rel="noopener" title="男生更看重女生的身材脸蛋，还是思想？"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-38.nonecase\"}","index":"38","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/shenjian58\/article\/details\/105039655","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-38.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-38.nonecase' 			>
				往往，我们看不进去大段大段的逻辑。深刻的哲理，往往短而精悍，一阵见血。问：产品经理挺漂亮的，有点心动，但不知道合不合得来。男生更看重女生的身材脸蛋，还是......			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_34337381">	
					<span class="blog_title"> weixin_34337381的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">10-18</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				81</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/weixin_34337381/article/details/92441603" target="_blank"  rel="noopener" title="怎么把OCR文字识别软件识别结果的文档导出"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-39.nonecase\"}","index":"39","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_34337381\/article\/details\/92441603","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-39.nonecase\"}","index":"39","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_34337381\/article\/details\/92441603","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-39.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-39.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				怎么把OCR文字识别软件识别结果的文档导出			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/weixin_34337381/article/details/92441603" target="_blank"  rel="noopener" title="怎么把OCR文字识别软件识别结果的文档导出"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-39.nonecase\"}","index":"39","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_34337381\/article\/details\/92441603","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-39.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-39.nonecase' 			>
				2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt;                                                    ......			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_34054866">	
					<span class="blog_title"> weixin_34054866的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-25</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				316</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/weixin_34054866/article/details/91918271" target="_blank"  rel="noopener" title="hdfs  写orc"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-40.nonecase\"}","index":"40","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_34054866\/article\/details\/91918271","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-40.nonecase\"}","index":"40","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_34054866\/article\/details\/91918271","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-40.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-40.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				hdfs  写<em>orc</em>			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/weixin_34054866/article/details/91918271" target="_blank"  rel="noopener" title="hdfs  写orc"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-40.nonecase\"}","index":"40","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_34054866\/article\/details\/91918271","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-40.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-40.nonecase' 			>
				2019独角兽企业重金招聘Python工程师标准&gt;&gt;&gt;                                                    ......			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/shazicaibeishang4145">	
					<span class="blog_title"> shazicaibeishang4145的专栏</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">01-13</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1686</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/shazicaibeishang4145/article/details/54409128" target="_blank"  rel="noopener" title="hive:orc file"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-41.nonecase\"}","index":"41","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/shazicaibeishang4145\/article\/details\/54409128","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-41.nonecase\"}","index":"41","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/shazicaibeishang4145\/article\/details\/54409128","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-41.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-41.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				hive:<em>orc</em> file			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/shazicaibeishang4145/article/details/54409128" target="_blank"  rel="noopener" title="hive:orc file"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-41.nonecase\"}","index":"41","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/shazicaibeishang4145\/article\/details\/54409128","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-41.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-41.nonecase' 			>
				一、定义ORC File,（Optimized Row Columnar）File，是对RCFile的优化。ORC文件格式是从Hive-0.11版本开始的.二、目的：          1、大幅度降低...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/freedom_824">	
					<span class="blog_title"> freedom_824的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">08-24</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				919</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/freedom_824/article/details/77543515" target="_blank"  rel="noopener" title="trafodion导入ORC文件压缩方式是snappy"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-42.nonecase\"}","index":"42","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/freedom_824\/article\/details\/77543515","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-42.nonecase\"}","index":"42","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/freedom_824\/article\/details\/77543515","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-42.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-42.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				trafodion导入<em>ORC</em><em>文件</em>压缩方式是snappy			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/freedom_824/article/details/77543515" target="_blank"  rel="noopener" title="trafodion导入ORC文件压缩方式是snappy"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-42.nonecase\"}","index":"42","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/freedom_824\/article\/details\/77543515","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-42.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-42.nonecase' 			>
				1. 在hive里面创建一个外表：create external table `orc_03`(`id` int,`bid` string,`code` string,`name` string,`i...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/qiangzi_lg">	
					<span class="blog_title"> qiangzi_lg的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">01-28</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1197</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/qiangzi_lg/article/details/86676538" target="_blank"  rel="noopener" title="hbase实现TXT,CSV,ORC和Parquet格式数据的导入和导出代码"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-43.nonecase\"}","index":"43","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qiangzi_lg\/article\/details\/86676538","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-43.nonecase\"}","index":"43","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qiangzi_lg\/article\/details\/86676538","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-43.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-43.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				hbase实现TXT,CSV,<em>ORC</em>和Parquet<em>格式</em><em>数据</em>的导入和导出代码			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/qiangzi_lg/article/details/86676538" target="_blank"  rel="noopener" title="hbase实现TXT,CSV,ORC和Parquet格式数据的导入和导出代码"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-43.nonecase\"}","index":"43","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qiangzi_lg\/article\/details\/86676538","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-43.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-43.nonecase' 			>
				下面纯属原创，只是实现其功能，性能上对于大规模数据尚有欠缺，直接上代码：导入： public ImportDataResponse importData(String connectionID, St...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/csdnnews">	
					<span class="blog_title"> CSDN资讯</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-27</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				3万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/csdnnews/article/details/105142295" target="_blank"  rel="noopener" title="无代码时代来临，程序员如何保住饭碗？"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-44.nonecase\"}","index":"44","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/csdnnews\/article\/details\/105142295","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-44.nonecase\"}","index":"44","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/csdnnews\/article\/details\/105142295","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-44.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-44.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				无代码时代来临，程序员如何保住饭碗？			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/csdnnews/article/details/105142295" target="_blank"  rel="noopener" title="无代码时代来临，程序员如何保住饭碗？"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-44.nonecase\"}","index":"44","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/csdnnews\/article\/details\/105142295","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-44.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-44.nonecase' 			>
				编程语言层出不穷，从最初的机器语言到如今2500种以上的高级语言，程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新，一边面临由于许多代码已存在，程序员编写新应用程序时存在重复“搬砖”的现象...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_30565199">	
					<span class="blog_title"> weixin_30565199的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">07-02</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				148</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/weixin_30565199/article/details/98440618" target="_blank"  rel="noopener" title="Hive-ORC文件存储格式（续）"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-45.nonecase\"}","index":"45","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_30565199\/article\/details\/98440618","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-45.nonecase\"}","index":"45","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_30565199\/article\/details\/98440618","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-45.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-45.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				Hive-<em>ORC</em><em>文件</em><em>存储</em><em>格式</em>（续）			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/weixin_30565199/article/details/98440618" target="_blank"  rel="noopener" title="Hive-ORC文件存储格式（续）"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-45.nonecase\"}","index":"45","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_30565199\/article\/details\/98440618","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-45.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-45.nonecase' 			>
				　　本文在Hive-ORC文件存储格式的理论基础上，进一步分析一个实际的Hive ORC表中的数据存储形式。一、表结构　　库名+表名：fileformat.test_orc  字段  类型  cate...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/wankunde">	
					<span class="blog_title"> 小万万的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">10-11</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1338</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/wankunde/article/details/78203080" target="_blank"  rel="noopener" title="数据库Join实现"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-46.nonecase\"}","index":"46","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/wankunde\/article\/details\/78203080","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-46.nonecase\"}","index":"46","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/wankunde\/article\/details\/78203080","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-46.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-46.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				<em>数据</em>库Join实现			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/wankunde/article/details/78203080" target="_blank"  rel="noopener" title="数据库Join实现"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-46.nonecase\"}","index":"46","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/wankunde\/article\/details\/78203080","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-46.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-46.nonecase' 			>
				测试sql ： select * from a join b where a.id= b.id;a  0  hash map table  b 1  scan table alias  ：　１MapJ...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/java_wxid">	
					<span class="blog_title"> 做人还是低调点</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">05-08</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				3万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/java_wxid/article/details/105087259" target="_blank"  rel="noopener" title="面试：第十六章：Java中级开发（16k）"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-47.nonecase\"}","index":"47","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/java_wxid\/article\/details\/105087259","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-47.nonecase\"}","index":"47","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/java_wxid\/article\/details\/105087259","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-47.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-47.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				面试：第十六章：Java中级开发（16k）			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/java_wxid/article/details/105087259" target="_blank"  rel="noopener" title="面试：第十六章：Java中级开发（16k）"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-47.nonecase\"}","index":"47","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/java_wxid\/article\/details\/105087259","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-47.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-47.nonecase' 			>
				HashMap底层实现原理，红黑树，B+树，B树的结构原理	Spring的AOP和IOC是什么？它们常见的使用场景有哪些？Spring事务，事务的属性，传播行为，数据库隔离级别	Spring和Spri...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_33830216">	
					<span class="blog_title"> weixin_33830216的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">05-16</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1733</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/weixin_33830216/article/details/91445808" target="_blank"  rel="noopener" title="什么是单点登录(SSO)"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-48.nonecase\"}","index":"48","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_33830216\/article\/details\/91445808","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-48.nonecase\"}","index":"48","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_33830216\/article\/details\/91445808","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-48.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-48.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				什么是单点登录(SSO)			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/weixin_33830216/article/details/91445808" target="_blank"  rel="noopener" title="什么是单点登录(SSO)"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-48.nonecase\"}","index":"48","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_33830216\/article\/details\/91445808","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-48.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-48.nonecase' 			>
				前言只有光头才能变强。文本已收录至我的GitHub仓库，欢迎Star：github.com/ZhongFuChen…在我实习之前我就已经在看单点登录的是什么了，但是实习的时候一直在忙其他的事，所以有几...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/Java_3y">	
					<span class="blog_title"> 3y</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">04-07</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				3万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/Java_3y/article/details/105357227" target="_blank"  rel="noopener" title="我说我懂多线程，面试官立马给我发了offer"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-49.nonecase\"}","index":"49","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/Java_3y\/article\/details\/105357227","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-49.nonecase\"}","index":"49","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/Java_3y\/article\/details\/105357227","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-49.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-49.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				我说我懂多线程，面试官立马给我发了offer			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/Java_3y/article/details/105357227" target="_blank"  rel="noopener" title="我说我懂多线程，面试官立马给我发了offer"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-49.nonecase\"}","index":"49","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/Java_3y\/article\/details\/105357227","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-49.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-49.nonecase' 			>
				不小心拿了几个offer，有点烦			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/likun557">	
					<span class="blog_title"> 路人甲Java</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">04-06</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				5万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/likun557/article/details/105355394" target="_blank"  rel="noopener" title="终于，月薪过5万了！"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-50.nonecase\"}","index":"50","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/likun557\/article\/details\/105355394","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-50.nonecase\"}","index":"50","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/likun557\/article\/details\/105355394","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-50.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-50.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				终于，月薪过5万了！			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/likun557/article/details/105355394" target="_blank"  rel="noopener" title="终于，月薪过5万了！"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-50.nonecase\"}","index":"50","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/likun557\/article\/details\/105355394","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-50.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-50.nonecase' 			>
				来看几个问题想不想月薪超过5万？想不想进入公司架构组？想不想成为项目组的负责人？想不想成为spring的高手，超越99%的对手？那么本文内容是你必须要掌握的。本文主要详解bean的生命......			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/csdnnews">	
					<span class="blog_title"> CSDN资讯</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-23</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				3万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/csdnnews/article/details/105062208" target="_blank"  rel="noopener" title="程序员为什么千万不要瞎努力？"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-51.nonecase\"}","index":"51","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/csdnnews\/article\/details\/105062208","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-51.nonecase\"}","index":"51","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/csdnnews\/article\/details\/105062208","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-51.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-51.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				程序员为什么千万不要瞎努力？			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/csdnnews/article/details/105062208" target="_blank"  rel="noopener" title="程序员为什么千万不要瞎努力？"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-51.nonecase\"}","index":"51","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/csdnnews\/article\/details\/105062208","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-51.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-51.nonecase' 			>
				本文作者用对比非常鲜明的两个开发团队的故事，讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境，那么即使勤劳努力，不仅会极其耗时而且成果甚微，使用......			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/CSDN_bang">	
					<span class="blog_title"> CSDN业界要闻</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">12-24</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1651</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/CSDN_bang/article/details/103691966" target="_blank"  rel="noopener" title="8年Python程序员，去2线城市大厂面试崩了……网友：太真实！"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-52.nonecase\"}","index":"52","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/CSDN_bang\/article\/details\/103691966","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-52.nonecase\"}","index":"52","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/CSDN_bang\/article\/details\/103691966","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-52.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-52.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				8年Python程序员，去2线城市大厂面试崩了……网友：太真实！			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/CSDN_bang/article/details/103691966" target="_blank"  rel="noopener" title="8年Python程序员，去2线城市大厂面试崩了……网友：太真实！"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-52.nonecase\"}","index":"52","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/CSDN_bang\/article\/details\/103691966","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-52.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-52.nonecase' 			>
				最近在某瓜视频上，一条“程序员面试vlog”的短视频火了。在青岛这样的二线城市，能数得出来的大厂，大概就是海尔、海信、奥克斯了。而他去面试的，就是海信。说来也传奇，他原来所在的公司，整个......			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_42072754">	
					<span class="blog_title"> weixin_42072754的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">11-28</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				235</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/weixin_42072754/article/details/103301177" target="_blank"  rel="noopener" title="Hive ORC格式存储时压缩测试"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-53.nonecase\"}","index":"53","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_42072754\/article\/details\/103301177","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-53.nonecase\"}","index":"53","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_42072754\/article\/details\/103301177","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-53.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-53.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				Hive <em>ORC</em><em>格式</em><em>存储</em>时压缩测试			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/weixin_42072754/article/details/103301177" target="_blank"  rel="noopener" title="Hive ORC格式存储时压缩测试"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-53.nonecase\"}","index":"53","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_42072754\/article\/details\/103301177","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-53.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-53.nonecase' 			>
				存储和压缩结合官网：https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ORCORC存储方式的压缩：KeyDefaultNo...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_30924087">	
					<span class="blog_title"> weixin_30924087的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-08</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				351</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/weixin_30924087/article/details/94884427" target="_blank"  rel="noopener" title="使用JAVA API 解析ORC File"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-54.nonecase\"}","index":"54","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_30924087\/article\/details\/94884427","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-54.nonecase\"}","index":"54","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_30924087\/article\/details\/94884427","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-54.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-54.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				使用JAVA API 解析<em>ORC</em> File			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/weixin_30924087/article/details/94884427" target="_blank"  rel="noopener" title="使用JAVA API 解析ORC File"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-54.nonecase\"}","index":"54","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_30924087\/article\/details\/94884427","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-54.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-54.nonecase' 			>
				使用JAVA API 解析ORC Fileorc File 的解析过程中，使用FileInputFormat的getSplits(conf, 1)函数，然后使用 RecordReaderreader ...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/YF_Li123">	
					<span class="blog_title"> YF_Li123的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">06-16</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1185</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/YF_Li123/article/details/80714269" target="_blank"  rel="noopener" title="MapReduce读写ORC文件"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-55.nonecase\"}","index":"55","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/YF_Li123\/article\/details\/80714269","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-55.nonecase\"}","index":"55","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/YF_Li123\/article\/details\/80714269","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-55.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-55.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				MapReduce读写<em>ORC</em><em>文件</em>			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/YF_Li123/article/details/80714269" target="_blank"  rel="noopener" title="MapReduce读写ORC文件"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-55.nonecase\"}","index":"55","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/YF_Li123\/article\/details\/80714269","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-55.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-55.nonecase' 			>
				MapReduce读写ORC文件ORC的全称是Optimized Row Columnar。ORC文件格式是hadoop生态圈中的一种列式存储格式，最早来自于Apache Hive， 有着非常高的压缩...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/JiuZhang_ninechapter">	
					<span class="blog_title"> 九章算法的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">04-09</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/JiuZhang_ninechapter/article/details/105416333" target="_blank"  rel="noopener" title="代码注释如此沙雕，会玩还是你们程序员！"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-56.nonecase\"}","index":"56","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/JiuZhang_ninechapter\/article\/details\/105416333","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-56.nonecase\"}","index":"56","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/JiuZhang_ninechapter\/article\/details\/105416333","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-56.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-56.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				代码注释如此沙雕，会玩还是你们程序员！			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/JiuZhang_ninechapter/article/details/105416333" target="_blank"  rel="noopener" title="代码注释如此沙雕，会玩还是你们程序员！"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-56.nonecase\"}","index":"56","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/JiuZhang_ninechapter\/article\/details\/105416333","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-56.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-56.nonecase' 			>
				某站后端代码被“开源”，同时刷遍全网的，还有代码里的那些神注释。我们这才知道，原来程序员个个都是段子手；这么多年来，我们也走过了他们的无数套路…首先，产品经理，是永远永远吐槽不完的！网友的评论也非常扎...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/weixin_34132768">	
					<span class="blog_title"> weixin_34132768的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-08</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				72</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/weixin_34132768/article/details/86443521" target="_blank"  rel="noopener" title="更高的压缩比，更好的性能–使用ORC文件格式优化Hive"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-57.nonecase\"}","index":"57","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_34132768\/article\/details\/86443521","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-57.nonecase\"}","index":"57","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_34132768\/article\/details\/86443521","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-57.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-57.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				更高的压缩比，更好的性能–使用<em>ORC</em><em>文件</em><em>格式</em>优化Hive			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/weixin_34132768/article/details/86443521" target="_blank"  rel="noopener" title="更高的压缩比，更好的性能–使用ORC文件格式优化Hive"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-57.nonecase\"}","index":"57","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/weixin_34132768\/article\/details\/86443521","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-57.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-57.nonecase' 			>
				http://lxw1234.com/archives/2016/04/630.htm关键字：orc、index、hiveHive从0.11版本开始提供了ORC的文件格式，ORC文件不仅仅是一种列式文...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/liuxiao723846">	
					<span class="blog_title"> 赶路人儿</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">11-23</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				2565</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/liuxiao723846/article/details/78617699" target="_blank"  rel="noopener" title="Java API 写 Hive Orc文件"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-58.nonecase\"}","index":"58","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/liuxiao723846\/article\/details\/78617699","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-58.nonecase\"}","index":"58","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/liuxiao723846\/article\/details\/78617699","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-58.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-58.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				Java API 写 Hive <em>Orc</em><em>文件</em>			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/liuxiao723846/article/details/78617699" target="_blank"  rel="noopener" title="Java API 写 Hive Orc文件"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-58.nonecase\"}","index":"58","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/liuxiao723846\/article\/details\/78617699","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-58.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-58.nonecase' 			>
				下面的代码将三行数据：张三,20李四,22王五,30写入HDFS上的/tmp/lxw1234/orcoutput/lxw1234.com.orc文件中。package com.lxw1234.test...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/ityouknow">	
					<span class="blog_title"> 纯洁的微笑</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-08</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/ityouknow/article/details/104744412" target="_blank"  rel="noopener" title="搜狗输入法也在挑战国人的智商！"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-59.nonecase\"}","index":"59","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/ityouknow\/article\/details\/104744412","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-59.nonecase\"}","index":"59","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/ityouknow\/article\/details\/104744412","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-59.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-59.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				搜狗输入法也在挑战国人的智商！			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/ityouknow/article/details/104744412" target="_blank"  rel="noopener" title="搜狗输入法也在挑战国人的智商！"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-59.nonecase\"}","index":"59","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/ityouknow\/article\/details\/104744412","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-59.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-59.nonecase' 			>
				故事总是一个接着一个到来...上周写完《鲁大师已经彻底沦为一款垃圾流氓软件！》这篇文章之后，鲁大师的市场工作人员就找到了我，希望把这篇文章删除掉。经过一番沟通我先把这篇文章从公号中删除了......			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/Zhangguohao666">	
					<span class="blog_title"> Zhangguohao666的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-30</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				3万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/Zhangguohao666/article/details/105131503" target="_blank"  rel="noopener" title="Python爬虫，高清美图我全都要（彼岸桌面壁纸）"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-60.nonecase\"}","index":"60","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/Zhangguohao666\/article\/details\/105131503","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-60.nonecase\"}","index":"60","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/Zhangguohao666\/article\/details\/105131503","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-60.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-60.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				Python爬虫，高清美图我全都要（彼岸桌面壁纸）			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/Zhangguohao666/article/details/105131503" target="_blank"  rel="noopener" title="Python爬虫，高清美图我全都要（彼岸桌面壁纸）"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-60.nonecase\"}","index":"60","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/Zhangguohao666\/article\/details\/105131503","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-60.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-60.nonecase' 			>
				爬取彼岸桌面网站较为简单，用到了requests、lxml、Beautiful Soup4			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/qq_43901693">	
					<span class="blog_title"> 爪白白的个人博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">04-25</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				4万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/qq_43901693/article/details/104750730" target="_blank"  rel="noopener" title="总结了 150 余个神奇网站，你不来瞅瞅吗？"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-61.nonecase\"}","index":"61","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qq_43901693\/article\/details\/104750730","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-61.nonecase\"}","index":"61","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qq_43901693\/article\/details\/104750730","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-61.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-61.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				总结了 150 余个神奇网站，你不来瞅瞅吗？			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/qq_43901693/article/details/104750730" target="_blank"  rel="noopener" title="总结了 150 余个神奇网站，你不来瞅瞅吗？"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-61.nonecase\"}","index":"61","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qq_43901693\/article\/details\/104750730","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-61.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-61.nonecase' 			>
				原博客再更新，可能就没了，之后将持续更新本篇博客。			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/csdnnews">	
					<span class="blog_title"> CSDN资讯</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">09-03</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				3万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/csdnnews/article/details/100513906" target="_blank"  rel="noopener" title="学Python后到底能干什么？网友：我太难了"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-62.nonecase\"}","index":"62","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/csdnnews\/article\/details\/100513906","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-62.nonecase\"}","index":"62","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/csdnnews\/article\/details\/100513906","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-62.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-62.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				学Python后到底能干什么？网友：我太难了			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/csdnnews/article/details/100513906" target="_blank"  rel="noopener" title="学Python后到底能干什么？网友：我太难了"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-62.nonecase\"}","index":"62","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/csdnnews\/article\/details\/100513906","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-62.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-62.nonecase' 			>
				感觉全世界营销文都在推Python，但是找不到工作的话，又有哪个机构会站出来给我推荐工作？笔者冷静分析多方数据，想跟大家说：关于超越老牌霸主Java，过去几年间Pytho......			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/mq2553299">	
					<span class="blog_title"> 却把清梅嗅的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-09</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				4212</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/mq2553299/article/details/104744749" target="_blank"  rel="noopener" title="哈希映射用法及算法例题"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-63.nonecase\"}","index":"63","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/mq2553299\/article\/details\/104744749","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-63.nonecase\"}","index":"63","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/mq2553299\/article\/details\/104744749","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-63.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-63.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				哈希映射用法及算法例题			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/mq2553299/article/details/104744749" target="_blank"  rel="noopener" title="哈希映射用法及算法例题"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-63.nonecase\"}","index":"63","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/mq2553299\/article\/details\/104744749","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-63.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-63.nonecase' 			>
				本文为博主算法学习过程中的学习笔记，主要内容来源于其他平台或书籍，出处请参考下方 参考&amp;感谢 一节。用法哈希映射 是用于存储 (key, value) 键值对的一种实现。使用哈希映射的第一个场...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/m0_38106923">	
					<span class="blog_title"> 不脱发的程序猿</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-19</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				2万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/m0_38106923/article/details/104977527" target="_blank"  rel="noopener" title="2020阿里全球数学大赛：3万名高手、4道题、2天2夜未交卷"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-64.nonecase\"}","index":"64","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/m0_38106923\/article\/details\/104977527","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-64.nonecase\"}","index":"64","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/m0_38106923\/article\/details\/104977527","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-64.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-64.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				2020阿里全球数学大赛：3万名高手、4道题、2天2夜未交卷			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/m0_38106923/article/details/104977527" target="_blank"  rel="noopener" title="2020阿里全球数学大赛：3万名高手、4道题、2天2夜未交卷"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-64.nonecase\"}","index":"64","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/m0_38106923\/article\/details\/104977527","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-64.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-64.nonecase' 			>
				阿里巴巴全球数学竞赛（ Alibaba Global Mathematics Competition）由马云发起，由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛，全世界爱...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/wyz0516071128">	
					<span class="blog_title"> wyz0516071128的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">07-03</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				1万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/wyz0516071128/article/details/80892487" target="_blank"  rel="noopener" title="hive常见的几种文件存储格式与压缩方式的结合-------Parquet格式+snappy压缩 以及ORC格式+snappy压缩文件的方式"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-65.nonecase\"}","index":"65","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/wyz0516071128\/article\/details\/80892487","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-65.nonecase\"}","index":"65","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/wyz0516071128\/article\/details\/80892487","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-65.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-65.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				hive常见的几种<em>文件</em><em>存储</em><em>格式</em>与压缩方式的结合-------Parquet<em>格式</em>+snappy压缩 以及<em>ORC</em><em>格式</em>+snappy压缩<em>文件</em>的方式			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/wyz0516071128/article/details/80892487" target="_blank"  rel="noopener" title="hive常见的几种文件存储格式与压缩方式的结合-------Parquet格式+snappy压缩 以及ORC格式+snappy压缩文件的方式"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-65.nonecase\"}","index":"65","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/wyz0516071128\/article\/details\/80892487","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-65.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-65.nonecase' 			>
				一.使用Parquet存储数据 数据使用列存储之前是普通的行存储，下面是行存储的的文件大小，这个HDFS上的数据  使用parquet列存储，可以将文件的大小减小化。下面具体讲parquet存储数据的...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/ityouknow">	
					<span class="blog_title"> 纯洁的微笑</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-04</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				11万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/ityouknow/article/details/104666810" target="_blank"  rel="noopener" title="和黑客斗争的 6 天！"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-66.nonecase\"}","index":"66","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/ityouknow\/article\/details\/104666810","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-66.nonecase\"}","index":"66","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/ityouknow\/article\/details\/104666810","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-66.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-66.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				和黑客斗争的 6 天！			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/ityouknow/article/details/104666810" target="_blank"  rel="noopener" title="和黑客斗争的 6 天！"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-66.nonecase\"}","index":"66","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/ityouknow\/article\/details\/104666810","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-66.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-66.nonecase' 			>
				互联网公司工作，很难避免不和黑客们打交道，我呆过的两家互联网公司，几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口，有的是寻找线上服务器可能存在的漏洞，大部分都......			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/sparkexpert">	
					<span class="blog_title"> 大数据挖掘SparkExpert的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">12-06</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				5595</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/sparkexpert/article/details/50193443" target="_blank"  rel="noopener" title="Hive ORC文件格式存储与测试（Malformed ORC file解决）"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-67.nonecase\"}","index":"67","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/sparkexpert\/article\/details\/50193443","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-67.nonecase\"}","index":"67","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/sparkexpert\/article\/details\/50193443","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-67.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-67.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				Hive <em>ORC</em><em>文件</em><em>格式</em><em>存储</em>与测试（Malformed <em>ORC</em> file解决）			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/sparkexpert/article/details/50193443" target="_blank"  rel="noopener" title="Hive ORC文件格式存储与测试（Malformed ORC file解决）"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-67.nonecase\"}","index":"67","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/sparkexpert\/article\/details\/50193443","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-67.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-67.nonecase' 			>
				Hive本身支持好多种数据格式，其中OrcFile是当前压缩比最大的一个。因此进行该方面的实践。采用建表过程中，直接：stored as orc，就可以指定。然而用传统文本文件导入的方式，再进行查询测...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/zhinengxuexi">	
					<span class="blog_title"> 数智集的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">04-19</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				3271</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/zhinengxuexi/article/details/89400984" target="_blank"  rel="noopener" title="大数据类型主要分为哪几类，大数据挖掘商业价值方法主要分为哪几种？"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-68.nonecase\"}","index":"68","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/zhinengxuexi\/article\/details\/89400984","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-68.nonecase\"}","index":"68","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/zhinengxuexi\/article\/details\/89400984","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-68.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-68.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				大<em>数据</em>类型主要分为哪几类，大<em>数据</em>挖掘商业价值方法主要分为哪几种？			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/zhinengxuexi/article/details/89400984" target="_blank"  rel="noopener" title="大数据类型主要分为哪几类，大数据挖掘商业价值方法主要分为哪几种？"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-68.nonecase\"}","index":"68","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/zhinengxuexi\/article\/details\/89400984","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-68.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-68.nonecase' 			>
				互联网是个神奇的大网，大数据开发也是一种模式，你如果真想了解大数据，可以来这里，这个手机的开始数字是一八七中间的是三儿零最后的是一四二五零，按照顺序组合起来就可以找到，我想说的是，除非你想做或者了解这...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/guoxy_nb">	
					<span class="blog_title"> guoxy_nb的专栏</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">04-24</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				4503</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/guoxy_nb/article/details/24435947" target="_blank"  rel="noopener" title="Hive语言手册之五：ORC文件格式"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-69.nonecase\"}","index":"69","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/guoxy_nb\/article\/details\/24435947","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-69.nonecase\"}","index":"69","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/guoxy_nb\/article\/details\/24435947","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-69.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-69.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				Hive语言手册之五：<em>ORC</em><em>文件</em><em>格式</em>			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/guoxy_nb/article/details/24435947" target="_blank"  rel="noopener" title="Hive语言手册之五：ORC文件格式"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-69.nonecase\"}","index":"69","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/guoxy_nb\/article\/details\/24435947","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-69.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-69.nonecase' 			>
				﻿﻿一、ORC文件格式ORC File Format ORC从Hive0.11开始引入。Introduced in Hive version 0.11.ORC（Optimized Row Column...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/harvic880925">	
					<span class="blog_title"> 启舰</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-30</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				12万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/harvic880925/article/details/105191089" target="_blank"  rel="noopener" title="程序员垃圾简历长什么样？"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-70.nonecase\"}","index":"70","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/harvic880925\/article\/details\/105191089","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-70.nonecase\"}","index":"70","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/harvic880925\/article\/details\/105191089","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-70.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-70.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				程序员垃圾简历长什么样？			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/harvic880925/article/details/105191089" target="_blank"  rel="noopener" title="程序员垃圾简历长什么样？"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-70.nonecase\"}","index":"70","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/harvic880925\/article\/details\/105191089","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-70.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-70.nonecase' 			>
				已经连续五年参加大厂校招、社招的技术面试工作，简历看的不下于万份这篇文章会用实例告诉你，什么是差的程序员简历！疫情快要结束了，各个公司也都开始春招了，作为即将红遍大江南北的新晋UP主，那当然要为小伙伴...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/longshenlmj">	
					<span class="blog_title"> longshenlmj的专栏</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">01-20</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				2万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/longshenlmj/article/details/50550580" target="_blank"  rel="noopener" title="hive 压缩全解读(hive表存储格式以及外部表直接加载压缩格式数据)；HADOOP存储数据压缩方案对比（LZO,gz，ORC）"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-71.nonecase\"}","index":"71","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/longshenlmj\/article\/details\/50550580","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-71.nonecase\"}","index":"71","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/longshenlmj\/article\/details\/50550580","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-71.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-71.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				hive 压缩全解读(hive表<em>存储</em><em>格式</em>以及外部表直接加载压缩<em>格式</em><em>数据</em>)；HADOOP<em>存储</em><em>数据</em>压缩方案对比（LZO,gz，<em>ORC</em>）			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/longshenlmj/article/details/50550580" target="_blank"  rel="noopener" title="hive 压缩全解读(hive表存储格式以及外部表直接加载压缩格式数据)；HADOOP存储数据压缩方案对比（LZO,gz，ORC）"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-71.nonecase\"}","index":"71","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/longshenlmj\/article\/details\/50550580","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-71.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-71.nonecase' 			>
				数据做压缩和解压缩总会增加CPU的开销，但可以最大程度的减少文件所需的磁盘空间和网络I/O的开销最好对那些I/O密集型的作业使用数据压缩hive表的存储格式为    TEXTFILE    SEQUE...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/Gamer_gyt">	
					<span class="blog_title"> Thinkgamer博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-16</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				3576</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/Gamer_gyt/article/details/104844937" target="_blank"  rel="noopener" title="怎么才能够坚持做一件事并且把它做好？"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-72.nonecase\"}","index":"72","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/Gamer_gyt\/article\/details\/104844937","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-72.nonecase\"}","index":"72","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/Gamer_gyt\/article\/details\/104844937","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-72.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-72.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				怎么才能够坚持做一件事并且把它做好？			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/Gamer_gyt/article/details/104844937" target="_blank"  rel="noopener" title="怎么才能够坚持做一件事并且把它做好？"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-72.nonecase\"}","index":"72","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/Gamer_gyt\/article\/details\/104844937","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-72.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-72.nonecase' 			>
				好久没写过碎言碎语的文章了，一直都是更新技术文章，那么今天就换换口味，聊一聊近况和想法。自从回北京之后，就一直在家办公，十几平方的卧室内支撑着北漂的身体和灵魂，我相信这不是我一个人的情况，而是无数在异...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/Geffin">	
					<span class="blog_title"> Geffin的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">04-01</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				9万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/Geffin/article/details/105253700" target="_blank"  rel="noopener" title="博主在阿里笔试中拿了0分，竟是因为分不清楚 Java 输入类 nextLine 与 next 两个方法的区别"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-73.nonecase\"}","index":"73","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/Geffin\/article\/details\/105253700","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-73.nonecase\"}","index":"73","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/Geffin\/article\/details\/105253700","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-73.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-73.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				博主在阿里笔试中拿了0分，竟是因为分不清楚 Java 输入类 nextLine 与 next 两个方法的区别			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/Geffin/article/details/105253700" target="_blank"  rel="noopener" title="博主在阿里笔试中拿了0分，竟是因为分不清楚 Java 输入类 nextLine 与 next 两个方法的区别"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-73.nonecase\"}","index":"73","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/Geffin\/article\/details\/105253700","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-73.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-73.nonecase' 			>
				前言以前做算法题，都是实现一个方法，需要的参数会在方法参数中直接给出，而且需要的返回值直接在方法中 return 就好了。但是，这次阿里笔试，让博主遭遇百万点暴击，需要的参数居然要到输入流中读取，而且...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/leen0304">	
					<span class="blog_title"> leen0304的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">01-03</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				2659</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/leen0304/article/details/78962658" target="_blank"  rel="noopener" title="hive表的存储格式 : ORC格式的使用"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-74.nonecase\"}","index":"74","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/leen0304\/article\/details\/78962658","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-74.nonecase\"}","index":"74","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/leen0304\/article\/details\/78962658","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-74.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-74.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				hive表的<em>存储</em><em>格式</em> : <em>ORC</em><em>格式</em>的使用			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/leen0304/article/details/78962658" target="_blank"  rel="noopener" title="hive表的存储格式 : ORC格式的使用"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-74.nonecase\"}","index":"74","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/leen0304\/article\/details\/78962658","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-74.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-74.nonecase' 			>
				hive表的源文件存储格式有几类：1、TEXTFILE 默认格式，建表时不指定默认为这个格式，导入数据时会直接把数据文件拷贝到hdfs上不进行处理。源文件可以直接通过hadoop fs -cat 查看...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/fjssharpsword">	
					<span class="blog_title"> 医疗影像检索</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">10-18</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				6793</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/fjssharpsword/article/details/52850206" target="_blank"  rel="noopener" title="MapReduce基础开发之十读写ORC File"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-75.nonecase\"}","index":"75","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/fjssharpsword\/article\/details\/52850206","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-75.nonecase\"}","index":"75","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/fjssharpsword\/article\/details\/52850206","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-75.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-75.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				MapReduce基础开发之十读写<em>ORC</em> File			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/fjssharpsword/article/details/52850206" target="_blank"  rel="noopener" title="MapReduce基础开发之十读写ORC File"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-75.nonecase\"}","index":"75","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/fjssharpsword\/article\/details\/52850206","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-75.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-75.nonecase' 			>
				1、ORC File2、编译ORC Jar包    http://orc.apache.org/ 下载源代码orc-1.2.1.tar.gz编译jar包   用ubuntu14编译，安装jdk1.8、...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/Java_3y">	
					<span class="blog_title"> 3y</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-16</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				9万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/Java_3y/article/details/104897426" target="_blank"  rel="noopener" title="我说我不会算法，阿里把我挂了。"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-76.nonecase\"}","index":"76","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/Java_3y\/article\/details\/104897426","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-76.nonecase\"}","index":"76","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/Java_3y\/article\/details\/104897426","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-76.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-76.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				我说我不会算法，阿里把我挂了。			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/Java_3y/article/details/104897426" target="_blank"  rel="noopener" title="我说我不会算法，阿里把我挂了。"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-76.nonecase\"}","index":"76","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/Java_3y\/article\/details\/104897426","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-76.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-76.nonecase' 			>
				不说了，字节跳动也反手把我挂了。			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/qing_gee">	
					<span class="blog_title"> 沉默王二</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">02-15</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				18万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/qing_gee/article/details/104323806" target="_blank"  rel="noopener" title="在三线城市工作爽吗？"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-77.nonecase\"}","index":"77","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qing_gee\/article\/details\/104323806","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-77.nonecase\"}","index":"77","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qing_gee\/article\/details\/104323806","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-77.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-77.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				在三线城市工作爽吗？			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/qing_gee/article/details/104323806" target="_blank"  rel="noopener" title="在三线城市工作爽吗？"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-77.nonecase\"}","index":"77","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/qing_gee\/article\/details\/104323806","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-77.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-77.nonecase' 			>
				我是一名程序员，从正值青春年华的 24 岁回到三线城市洛阳工作，至今已经 6 年有余。一不小心又暴露了自己的实际年龄，但老读者都知道，我驻颜有术，上次去看房子，业务员肯定地说：“小哥肯定比我小，我今年...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/EnjoyEDU">	
					<span class="blog_title"> EnjoyEDU的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">04-17</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				4万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/EnjoyEDU/article/details/105252061" target="_blank"  rel="noopener" title="Java岗开发3年，公司临时抽查算法，离职后这几题我记一辈子"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-78.nonecase\"}","index":"78","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/EnjoyEDU\/article\/details\/105252061","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-78.nonecase\"}","index":"78","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/EnjoyEDU\/article\/details\/105252061","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-78.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-78.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				Java岗开发3年，公司临时抽查算法，离职后这几题我记一辈子			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/EnjoyEDU/article/details/105252061" target="_blank"  rel="noopener" title="Java岗开发3年，公司临时抽查算法，离职后这几题我记一辈子"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-78.nonecase\"}","index":"78","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/EnjoyEDU\/article\/details\/105252061","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-78.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-78.nonecase' 			>
				前几天我们公司做了一件蠢事，非常非常愚蠢的事情。我原以为从学校出来之后，除了找工作有测试外，不会有任何与考试有关的事儿。但是，天有不测风云，公司技术总监、人事总监两位大佬突然降临到我们事业线，叫上我老...			</a>
		</div>
	</div>
	</div>

<div class="recommend-item-box type_blog clearfix">
	<div class="content">
		<div class="info-box d-flex align-content-center">
			<p class="from-where">
			<span class="blog_title_box oneline ">
												<a target="_blank" rel="noopener" href="https://blog.csdn.net/JiuZhang_ninechapter">	
					<span class="blog_title"> 九章算法的博客</span>
					</a>
									</span>
		</p>
		<p class="date-and-readNum oneline">
						<span class="hover-show">03-18</span>
			<span class="hover-hide">
				<img src="https://csdnimg.cn/release/phoenix/template/new_img/readCountWhite.png" alt="">
				3万+</span>
						</p>
		</div>
		<a href="https://blog.csdn.net/JiuZhang_ninechapter/article/details/104949778" target="_blank"  rel="noopener" title="带了6个月的徒弟当了面试官，而身为高级工程师的我天天修Bug......"
			 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-79.nonecase\"}","index":"79","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/JiuZhang_ninechapter\/article\/details\/104949778","ab":"new"}' data-report-view='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-79.nonecase\"}","index":"79","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/JiuZhang_ninechapter\/article\/details\/104949778","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-79.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-79.nonecase' >
			<h4 class="text-truncate oneline">
				<!-- <span class="recommend-article-type">博文</span> -->
				带了6个月的徒弟当了面试官，而身为高级工程师的我天天修Bug......			</h4>
		</a>
		<div class="desc">
			<a href="https://blog.csdn.net/JiuZhang_ninechapter/article/details/104949778" target="_blank"  rel="noopener" title="带了6个月的徒弟当了面试官，而身为高级工程师的我天天修Bug......"
				 data-report-click='{"mod":"popu_387","extra":"{\"utm_medium\":\"distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-79.nonecase\"}","index":"79","strategy":"BlogCommendFromMachineLearnPai2","dest":"https:\/\/blog.csdn.net\/JiuZhang_ninechapter\/article\/details\/104949778","ab":"new"}' data-report-query='utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-79.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-79.nonecase' 			>
				即将毕业的应届毕业生一枚，现在只拿到了两家offer，但最近听到一些消息，其中一个offer，我这个组据说客户很少，很有可能整组被裁掉。想问大家：如果我刚入职这个组就被裁了怎么办呢？大家都是什么时候知...			</a>
		</div>
	</div>
	</div>

                    <div class="recommend-item-box type_hot_word">
                    <div class="content clearfix">
                        <div class="float-left">
                                                                                <span>
                                <a href="https://java.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://java.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://java.csdn.net/","index":"#"}'  target="_blank">
                                Java</a>
                            </span>
                                                        <span>
                                <a href="https://c1.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://c1.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://c1.csdn.net/","index":"#"}'  target="_blank">
                                C语言</a>
                            </span>
                                                        <span>
                                <a href="https://python.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://python.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://python.csdn.net/","index":"#"}'  target="_blank">
                                Python</a>
                            </span>
                                                        <span>
                                <a href="https://cplus.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://cplus.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://cplus.csdn.net/","index":"#"}'  target="_blank">
                                C++</a>
                            </span>
                                                        <span>
                                <a href="https://csharp.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://csharp.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://csharp.csdn.net/","index":"#"}'  target="_blank">
                                C#</a>
                            </span>
                                                        <span>
                                <a href="https://vbn.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://vbn.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://vbn.csdn.net/","index":"#"}'  target="_blank">
                                Visual Basic .NET</a>
                            </span>
                                                        <span>
                                <a href="https://js.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://js.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://js.csdn.net/","index":"#"}'  target="_blank">
                                JavaScript</a>
                            </span>
                                                        <span>
                                <a href="https://php.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://php.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://php.csdn.net/","index":"#"}'  target="_blank">
                                PHP</a>
                            </span>
                                                        <span>
                                <a href="https://sql.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://sql.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://sql.csdn.net/","index":"#"}'  target="_blank">
                                SQL</a>
                            </span>
                                                        <span>
                                <a href="https://go.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://go.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://go.csdn.net/","index":"#"}'  target="_blank">
                                Go语言</a>
                            </span>
                                                        <span>
                                <a href="https://r.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://r.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://r.csdn.net/","index":"#"}'  target="_blank">
                                R语言</a>
                            </span>
                                                        <span>
                                <a href="https://assembly.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://assembly.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://assembly.csdn.net/","index":"#"}'  target="_blank">
                                Assembly language</a>
                            </span>
                                                        <span>
                                <a href="https://swift.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://swift.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://swift.csdn.net/","index":"#"}'  target="_blank">
                                Swift</a>
                            </span>
                                                        <span>
                                <a href="https://ruby.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://ruby.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://ruby.csdn.net/","index":"#"}'  target="_blank">
                                Ruby</a>
                            </span>
                                                        <span>
                                <a href="https://matlab.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://matlab.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://matlab.csdn.net/","index":"#"}'  target="_blank">
                                MATLAB</a>
                            </span>
                                                        <span>
                                <a href="https://plsql.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://plsql.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://plsql.csdn.net/","index":"#"}'  target="_blank">
                                PL/SQL</a>
                            </span>
                                                        <span>
                                <a href="https://perl.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://perl.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://perl.csdn.net/","index":"#"}'  target="_blank">
                                Perl</a>
                            </span>
                                                        <span>
                                <a href="https://vb.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://vb.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://vb.csdn.net/","index":"#"}'  target="_blank">
                                Visual Basic</a>
                            </span>
                                                        <span>
                                <a href="https://obj.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://obj.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://obj.csdn.net/","index":"#"}'  target="_blank">
                                Objective-C</a>
                            </span>
                                                        <span>
                                <a href="https://delphi.csdn.net/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://delphi.csdn.net/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://delphi.csdn.net/","index":"#"}'  target="_blank">
                                Delphi/Object Pascal</a>
                            </span>
                                                        <span>
                                <a href="https://www.csdn.net/unity/" data-report-click='{"mod":"1586412712_001","ab":"new","dest":"https://www.csdn.net/unity/","index":"索引#"}' data-report-view='{"mod":"1586412712_001","ab":"new","dest":"https://www.csdn.net/unity/","index":"#"}'  target="_blank">
                                Unity3D</a>
                            </span>
                                                    
                                                </div>
                    </div>
                    </div>
                                    <div class="recommend-loading-box">
                    <img src='https://csdnimg.cn/release/phoenix/images/feedLoading.gif'>
                </div>
                <div class="recommend-end-box">
                    <p class="text-center">没有更多推荐了，<a href="https://blog.csdn.net/" class="c-blue c-blue-hover c-blue-focus">返回首页</a></p>
                </div>
            </div>
                            <div class="template-box">
                    <span>©️2019 CSDN</span>
                <span>皮肤主题: 大白</span>
                <span> 设计师:
                                            CSDN官方博客                                    </span>
                </div>
                    </main>
    </div>
                <div class="recommend-right  align-items-stretch clearfix" id="rightAside">
      <aside class="recommend-right_aside">
        <div id="recommend-right" style="height:100%;position:fixed;top:44px">
          <div class='d-flex flex-column aside-box groupfile' id="groupfile">
            <h3 class="aside-title">目录</h3>
            <div class="align-items-stretch group_item">
                <div class="pos-box">
                    <div class="scroll-box">
                        <div class="toc-box"></div>
                    </div>
                </div>
            </div>
          </div>
                        <div id="addAdBox" style="display:none">
                  <div id="kp_box_479" data-pid="479"><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
<!-- PC-博客详情页右侧视窗（自适应） -->
<ins class="adsbygoogle"
     style="display:inline-block;width:300px;height:300px"
     data-ad-client="ca-pub-1076724771190722"
     data-ad-slot="9785577561"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script><img class="pre-img-lasy" data-src="https://kunyu.csdn.net/1.png?p=479&a=874&c=0&k=&d=1&t=3&u=8f101f824ee3489f99fb7f25500d04a7"></div>              </div>
                    <div class='aside-box kind_person d-flex flex-column'>
          <h3 class="aside-title">分类专栏</h3>
              <div class="align-items-stretch kindof_item">
                <div class="aside-content">
                  <ul>
                                        <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2750961.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2750961.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_2750961.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918135101160.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">spark</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">35篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2751099.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2751099.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_2751099.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190927151124774.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">hadoop</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">35篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2759537.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2759537.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_2759537.html">
                                                                <img src="https://img-blog.csdnimg.cn/2019091813595558.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">yarn</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">8篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2764569.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2764569.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_2764569.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140213434.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">hbase</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">1篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2852639.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_2852639.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_2852639.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140012416.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">算法题</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">23篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_3129795.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_3129795.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_3129795.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140129601.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">hive</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">10篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_3213349.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_3213349.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_3213349.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918135101160.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">mq</span>
                                                                </span>
                              <!--####是否付费-->
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_3227793.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_3227793.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_3227793.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140213434.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">mysql</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">2篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_5583811.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_5583811.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_5583811.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190927151117521.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">personal</span>
                                                                </span>
                              <!--####是否付费-->
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_5597891.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_5597891.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_5597891.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140053667.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">临时需求</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">1篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_5784467.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_5784467.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_5784467.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190927151101105.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">software</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">4篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_6059715.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_6059715.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_6059715.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140145169.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">maintain</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">11篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_6414083.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_6414083.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_6414083.html">
                                                                <img src="https://img-blog.csdnimg.cn/2019092715111047.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">～房子～</span>
                                                                </span>
                              <!--####是否付费-->
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_6502403.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_6502403.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_6502403.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140129601.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">scala</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">3篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_6507468.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_6507468.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_6507468.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190927151053287.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">java</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">8篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_7039708.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_7039708.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_7039708.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140053667.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">oracle-11g</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">1篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_7166428.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_7166428.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_7166428.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140129601.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">tez</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">1篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_7307639.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_7307639.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_7307639.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190927151053287.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">impala</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">1篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_7364569.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_7364569.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_7364569.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190927151124774.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">elasticsearch</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">2篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8284669.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8284669.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8284669.html">
                                                                <img src="https://img-blog.csdnimg.cn/2019091813595558.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">IDE工具使用</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">8篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8285316.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8285316.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8285316.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190927151124774.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">HTML</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">3篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8290432.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8290432.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8290432.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190927151132530.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">人生意义转载</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">5篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8295387.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8295387.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8295387.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190927151117521.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">JDK类学习</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">18篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8295679.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8295679.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8295679.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918135101160.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">工作日志</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">6篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8300029.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8300029.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8300029.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918135101160.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">J2EE</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">7篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8300377.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8300377.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8300377.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140012416.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">Oracle</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">9篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8307214.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8307214.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8307214.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140012416.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">YUI学习</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">2篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8315320.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8315320.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8315320.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190927151026427.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">Linux</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">3篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8316277.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8316277.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8316277.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140213434.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">Struts1</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">2篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8316580.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8316580.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8316580.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140053667.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">刨削</span>
                                                                </span>
                              <!--####是否付费-->
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8320120.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8320120.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8320120.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190927151124774.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">Jquery</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">1篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8320212.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8320212.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8320212.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140213434.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">JBPM</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">3篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8320356.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8320356.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8320356.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140037908.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">JSP学习</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">1篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8372412.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8372412.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8372412.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918135101160.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">solr</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">1篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8372587.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8372587.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8372587.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190927151132530.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">lunuce</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">1篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8373113.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8373113.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8373113.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140129601.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">OCR 识别文字 Java</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">1篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8381674.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8381674.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8381674.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140145169.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">JDK类学习 数据结构</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">1篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8382631.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8382631.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8382631.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190927151132530.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">每日英语</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">1篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8413671.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8413671.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8413671.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190927151117521.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">ssh</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">1篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8421543.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8421543.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8421543.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140037908.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">ruby</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">1篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8423348.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8423348.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8423348.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190918140053667.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">storm 序列化</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">1篇</span>
                                                        </a>
                      </li>
                                          <li class="">
                                                    <a class="clearfix" 
                                                        data-report-click='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8457723.html","ab":"new"}'
                              data-report-view='{"mod":"popu_537","strategy":"","dest":"https://blog.csdn.net/wankunde/category_8457723.html","ab":"new"}'
                                                      href="https://blog.csdn.net/wankunde/category_8457723.html">
                                                                <img src="https://img-blog.csdnimg.cn/20190927151026427.png" alt="">
                                                            <!--####是否付费-->
                              <span class="title oneline"><span class="text">代码片段</span>
                                                                </span>
                              <!--####是否付费-->
                                                                <span class="count float-right">3篇</span>
                                                        </a>
                      </li>
                                      </ul>
              </div>
              </div>
              
          </div>
      </div>
      </aside>  
    </div>
    
    </div>
<div class="mask-dark"></div>
<script>
    var recommendCount = 79;
    recommendCount = recommendCount > 1 ? (recommendCount + (recommendCount>6 ? 2 : 1)) : recommendCount;
    var ChannelId = 2;
    var articleId = "90269042";
    var commentscount = 0;
    var islock = false;
    var curentUrl = "https://blog.csdn.net/wankunde/java/article/details/90269042";
    var myUrl = "https://my.csdn.net/";
    //1禁止评论，2正常
    var commentAuth = 2;
    //百度搜索
    var baiduKey = "ORC文件存储格式和数据写入过程_大数据_小万万的博客-CSDN博客";
    var needInsertBaidu = true;
    // 代码段样式
    var codeStyle = 'atom-one-dark';
	var highlight = ["ORC","\u6587\u4ef6","\u5b58\u50a8","\u683c\u5f0f","\u6570\u636e","\u5199\u5165","\u8fc7\u7a0b"];//高亮数组

    var share_card_url = 'https://blog.csdn.net/wankunde/article/shareArticleCardPage?article_id=90269042'
    var RecommendBlogExpertList = [];
	var articleType = 1;
	var CopyrightContent = '';
    
        var recommendRegularDomainArr = ["blog.csdn.net\/.+\/article\/details\/","download.csdn.net\/download\/","edu.csdn.net\/course\/detail\/"];
</script>
<script src="https://csdnimg.cn/public/sandalstrap/1.4/js/sandalstrap.min.js"></script>
<script src="https://csdnimg.cn/release/phoenix/vendor/pagination/paging-3d3b805766.js"></script>
<div class="skin-boxshadow"></div>
<div class="pay-code">
        <div class="pay-money">应支付<span class="pay-money-span" data-nowprice='0' data-oldprice='0.00'>0元</span></div>
        <div class=content>
        <div id="payCode" data-id="">
                <div class="renovate">
                    <img src="https://csdnimg.cn/release/phoenix/static_blog/images/pay-time-out.png">
                    <span>点击重新获取</span>
                </div>
            </div>
            <div class="pay-style"><span><img src="https://csdnimg.cn/release/phoenix/static_blog/images/wx.png"></span><span><img src="https://csdnimg.cn/release/phoenix/static_blog/images/zfb.png"></span><span><img src="https://csdnimg.cn/release/phoenix/static_blog/images/JD.png"></span><span class="text">扫码支付</span></div>
        </div>
        <div class="bt-close"><svg t="1567152543821" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="10924" xmlns:xlink="http://www.w3.org/1999/xlink" width="12" height="12"><defs><style type="text/css"></style></defs><path d="M512 438.378667L806.506667 143.893333a52.032 52.032 0 1 1 73.6 73.621334L585.621333 512l294.485334 294.485333a52.074667 52.074667 0 0 1-73.6 73.642667L512 585.621333 217.514667 880.128a52.053333 52.053333 0 1 1-73.621334-73.642667L438.378667 512 143.893333 217.514667a52.053333 52.053333 0 1 1 73.621334-73.621334L512 438.378667z" fill="" p-id="10925"></path></svg></div>
        <p style="margin-top: 8px;font-size: 14px;" class="text-center">支付成功即可阅读</p>
    </div>
<div style="display:none;">
	<img src="" onerror='setTimeout(function(){if(!/(csdn.net|iteye.com|baiducontent.com|googleusercontent.com|360webcache.com|sogoucdn.com|bingj.com|baidu.com)$/.test(window.location.hostname)){window.location.href="\x68\x74\x74\x70\x73\x3a\x2f\x2f\x77\x77\x77\x2e\x63\x73\x64\x6e\x2e\x6e\x65\x74"}},3000);'>
</div>
</body>
<script type="text/javascript" src="https://csdnimg.cn/release/phoenix/production/pc_wap_common-f91259fb12.js"></script>
<link rel="stylesheet" href="https://csdnimg.cn/release/blog_editor_html/release1.6.0/ckeditor/plugins/codesnippet/lib/highlight/styles/atom-one-dark.css">
<script>
 // 全局声明
 if (window.csdn === undefined) {
      window.csdn = {};
    }
    window.csdn.sideToolbar = {
        options: {
            report:{
                isShow: true,
            },
            qr: {
                isShow: false,
            }
        }
    }
    $(function(){
        $(document).on('click',"a.option-box[data-type='report']",function() {
            window.csdn.userLogin.loadAjax(function(res){
                showReport(false,articleTitles);
            })
        });
    })
</script>
<script src="https://csdnimg.cn/release/phoenix/vendor/iconfont/csdnc-c439e66521.js"></script>
<script src="https://csdnimg.cn/release/phoenix/template/new_js/common-ae342f3be4.min.js"></script>
<script src="https://csdnimg.cn/release/phoenix/template/new_js/detail-2f7c5ee1d4.min.js"></script>
<script src="//csdnimg.cn/release/download/old_static/js/qrcode.js"></script>
<script src="https://csdnimg.cn/release/cart/pub/1.0.4/cart_jsonp.js?v=2"></script>
<script src="https://csdnimg.cn/release/phoenix/template/new_js/column_pay-b9bd326887.min.js"></script>
	
<script src="https://g.csdnimg.cn/copyright/1.0.3/copyright.js" type="text/javascript"></script>
<script type="text/javascript"  src="https://g.csdnimg.cn/??login-box/1.1.1/30/login-box.js,login-box/1.1.1/30/login-auto.js"></script>
<script>
    $(".MathJax").remove();
    if ($('div.markdown_views pre.prettyprint code.hljs').length > 0) {
        $('div.markdown_views')[0].className = 'markdown_views';
    }
</script>
<script type="text/javascript" src="https://csdnimg.cn/release/blog_mathjax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<script type="text/x-mathjax-config">
    MathJax.Hub.Config({
            "HTML-CSS": {
                    linebreaks: { automatic: true, width: "94%container" },
                    imageFont: null
            },
            tex2jax: {
                preview: "none"
            },
            mml2jax: {
                preview: 'none'
            }
    });
</script>
    <script src="//g.csdnimg.cn/baidu-search/1.0.3/baidu-search.js"  type="text/javascript"></script>
</html>
